Я люблю замыкания. Это замечательный инструмент, любой Javascript программист должен уметь его использовать. Он позволяет делать фантастические вещи. Но есть в нем и свои сложности. Я опишу пару проблем, на которые наткнулся, чтобы у вас было меньше проблем при написании программ. читать дальше
Posts tagged with перевод
12.12.2009Счетчик строк в MySQL
Оригинал
Тестовая таблица
Таблица, использованная для примера в этой статье, называется "fruit" и определенна следующим образом:
CREATE TABLE `fruit` ( `fruit_id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `somevalue` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`fruit_id`) ) ENGINE=MyISAM
И данные:
INSERT INTO `fruit` (`name`) VALUES ('Banana'), ('Orange'), ('Cherry'), ('Apple');
Запрос "SELECT * FROM fruit" вернет следующий результат:
| fruit_id | name | somevalue |
|---|---|---|
| 1 | Banana | 0 |
| 2 | Orange | 0 |
| 3 | Cherry | 0 |
| 4 | Apple | 0 |
SELECT со счетчиком
Чтобы использовать счетчик, надо объявить переменную:
SELECT @i:=0;
увеличивать ее можно следующим образом:
SELECT *, @i:=@i+1 AS i FROM fruit ORDER BY name;
Результат:
| fruit_id | name | somevalue | i |
|---|---|---|---|
| 4 | Apple | 0 | 1 |
| 1 | Banana | 0 | 2 |
| 3 | Cherry | 0 | 3 |
| 2 | Orange | 0 | 4 |
Заметьте, что для каждой новой строки - @i больше чем для предыдущей.
UPDATE с счетчиком
Следующий пример обновит поле "somevalue" значением счетчика. Обратите внимание, что @i необходимо обнулить после предыдущего примера, иначе следующее его значение будет 5.
SELECT @i:=0;
Как и SELECT запрос выше, обновляем значания отсортированные по имени.
UPDATE fruit SET somevalue = @i:=@i+1 ORDER BY name;
И результат "SELECT * FROM fruit":
| fruit_id | name | somevalue |
|---|---|---|
| 1 | Banana | 2 |
| 2 | Orange | 4 |
| 3 | Cherry | 3 |
| 4 | Apple | 1 |
или "SELECT * FROM fruit ORDER BY name"
| fruit_id | name | somevalue |
|---|---|---|
| 4 | Apple | 1 |
| 1 | Banana | 2 |
| 3 | Cherry | 3 |
| 2 | Orange | 4 |
10.12.2009Чуть более 20 хороших советов по MySQL (часть 1)
оригинал
Работа с базой данных зачастую самое слабое место в производительности многих web приложений. И об этом должны заботиться не только администраторы баз данных. Программисты должны выбирать правильную структуру таблиц, писать оптимизированные запросы и хороший код. Далее перечислены методы оптимизации работы с MySQL для программистов.
06.09.2009Шаблоны программирования Javascript (часть I)
Javascript предназначен для создания сценариев поведения сайта, это может быть как валидация форм, так и более сложные операции, такие как drag&drop или выполнение асинхронных запросов к серверу (например, Ajax). За последние нескольких лет Javascript библиотеки стали гораздо более популярны. Одной из причин этого, безусловно, является то, что веб-сайты становятся все более и более сложными и изобретать велосипед каждый раз уже не приемлемо, особенно, если у вас плотный график работы. Но оставим библиотеки и сосредоточимся на чистом Javascript, ведь это очень полезно — знать, какие есть паттерны программирования на Javascript.
В этой статье я попытаюсь представить некоторые из методов, которые я обнаружил. Я хотел бы отметить следующие паттерны:
- «Старая школа»;
- Одиночка (Singleton);
- Модули;
- Открытые модули;
- Объекты;
- Определение ленивых функций.

