Javascript-форум (https://javascript.ru/forum/)
-   Учебные материалы (https://javascript.ru/forum/study/)
-   -   [Книга] Stoyan Stefanov, Javascript Patterns (https://javascript.ru/forum/study/12686-%5Bkniga%5D-stoyan-stefanov-javascript-patterns.html)

Dmitry A. Soshnikov 26.10.2010 22:16

[Книга] Stoyan Stefanov, Javascript Patterns
 
Могу рекомендовать и ручаться за JavaScript Patterns Stoyan Stefanov'a. Главным ревьювером этой книги являюсь я (раздел Acknowledgments). Книга не отличается какими-то новаторскими подходами, однако, как минимум, не содержит технических ошибок (хотя, в принципе, возможна та незначительная часть, которую мы упустили). Есть много сносок к деталям, что делает её более точной.

Книга является обзором общих методик программирования на JavaScript, рассматривает шаблоны повторного использования кода (code reuse), шаблоны проектирования (хотя, некоторые из них больше теоретические и к JS мало отношения имеют, например Singleton), code conventions, функции, некоторые аспекты функционального программирования и методики работы с DOM.

Я подробно читал драфт. Финальную версию тоже просканировал. Книга не для (совсем) новичков, но имея небольшой опыт в программировании можно извлечь из неё что-то интересное.


Просматривал бегло High Performance JavaScript Nicholas C. Zakas'a -- возможно тоже неплохая книга. Читал в электронном виде главу 2, "Data Access". В принципе, описано неплохо, хотя есть пара технических ошибок.

javascript: The Definitive Guide, Sixth Edition David Flanagan -- не читал 6-ое издание, но 5-ое -- неплохое. Думаю, есть смысл прочесть (т.к. 5-ое издание считалось очень хорошей книгой по JS, да и Flanagan знает JavaScript хорошо).

Gozar 09.11.2010 21:46

удалено.

B@rmaley.e><e 09.11.2010 23:02

Цитата:

Сообщение от Gozar
К сожалению не могу найти на русском языке

Видимо, еще не перевели. Книга-то новая, двух месяцев отроду :-)

Особых проблем с чтением пока не ощущаю (хотя английский далек от совершенства), так что не могу согласиться с тем, что читать ее непросто. Впрочем, быть может я еще не дошел до самых сложных глав т.к. не могу уделять много времени чтению.

can3p 10.11.2010 00:18

Хорошая книга, полезно прочесть для закрепления собственных представлений о полезных методиках программирования на javascript. Покупал на сайте издательства, делал отчет по прочтении

Gozar 10.11.2010 11:08

удалено.

x-yuri 10.11.2010 12:45

а какие главы самые интересные/стоит почитать?

B@rmaley.e><e 10.11.2010 15:44

Стр. 65,
var myapp = {};
myapp.color = "green";
myapp.paint = function (node) {
    node.style.color = this.color;
};
//...
var findNodes = function (callback) {
    // ...
    if (typeof callback === "function") {
        callback(found);
    }
    // ...
};
Цитата:

If you call findNodes(myapp.paint), it won’t work as expected, because this.color will
not be defined. The object this will refer to the global object, because findNodes() is a
global function. If findNodes() were a method of an object called dom (like
dom.findNodes()), then this inside of the callback would refer to dom instead of the
expected myapp
.
Это я чего-то не догоняю, или в книге ошибка?

var myapp = {};
myapp.color = "green";
myapp.paint = function (node) {
    alert(this);
};
//...
var obj = {
  property : 1,
  findNodes: function (callback) {
    if (typeof callback === "function") {
        callback();
    }
  }
};
obj.findNodes(myapp.paint)
this, как и положено, внутри callback указывает на window, т.к. контекст не указан. Но автор книги обещает нам привязку callback'а к текущему контексту.

Dmitry A. Soshnikov 10.11.2010 16:47

Цитата:

Сообщение от B@rmaley.e><e
в книге ошибка?

Да, однозначно ошибка (не досмотрели; и в черновике я тоже вижу эту ошибку). Бред написан.

P.S.: В изначальном черновике было много ошибок. И опечаток, и технических.

Цитата:

Сообщение от x-yuri
а какие главы самые интересные/стоит почитать?

Если есть уже опыт и теоретическая база, книга не будет откровением, нового мало найдешь. Но при этом ее можно всю просмотреть (т.к. она маленькая -- всего 200 стр), чтобы иметь представление.

monolithed 30.04.2011 09:41

кстати книгу перевели С+

Dmitry A. Soshnikov 01.05.2011 01:23

Ага, это хорошо. Я видел еще на несколько языков перевели.


Часовой пояс GMT +3, время: 18:27.