DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31415
|
|
Рейтинг: 8951
|
|
Re: Стремления (огни) которые применяются в программировании
[re: DarkGray]
07.07.2009 12:59
|
|
|
26. новое делай снаружи, старое интегрируй внутрь
|
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31415
|
|
Рейтинг: 8951
|
|
Re: Стремления (огни) которые применяются в программировании
[re: DarkGray]
07.07.2009 13:05
|
|
|
Quote:
26. новое делай снаружи, старое интегрируй внутрь
26 а) чем большим количеством что-то используется, тем более оно ядернее и интегрируемее должно быть (и наоборот)
|
|
Shurik
|
|
|
|
|
Рег.: 27.09.2003
|
Сообщений: 13646
|
|
Рейтинг: 787
|
|
Re: Стремления (огни) которые применяются в программировании
[re: DarkGray]
07.07.2009 14:52
|
|
|
Quote:
26. новое делай снаружи, старое интегрируй внутрь
интересно, когда новое переходит в старое?
|
not fluffing up the experience with features that will ultimately cause you a headache |
|
unkulunkulu
|
unkulunkulunkulu
|
|
|
|
Рег.: 12.11.2006
|
Сообщений: 18453
|
Из: 13000
|
Рейтинг: 11759
|
|
Re: Стремления (огни) которые применяются в программировании
[re: Shurik]
07.07.2009 15:04
|
|
|
Очевидно когда начинает считаться тем, что "внутри" 
|
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31415
|
|
Рейтинг: 8951
|
|
Re: Стремления (огни) которые применяются в программировании
[re: Shurik]
07.07.2009 16:40
|
|
|
Quote:
интересно, когда новое переходит в старое?
Quote:
чем большим количеством что-то используется, тем более оно ядернее и интегрируемее должно быть (и наоборот)
|
|
error302
|
|
|
|
|
Рег.: 11.09.2008
|
Сообщений: 85
|
|
Рейтинг: 146
|
|
Re: Стремления (огни) которые применяются в программировании
[re: DarkGray]
09.07.2009 00:20
|
|
|
YAGNI - You Ain't Gonna Need It.
DWIM - Do What I Mean.
DST - Do Simple Things и DTSTTCPW - Do The Simplest Thing That Could Possibly Work.
Вообще, рекомендую последний сайт.
|
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31415
|
|
Рейтинг: 8951
|
|
Re: Стремления (огни) которые применяются в программировании
[re: error302]
09.07.2009 02:27
|
|
|
Quote:
YAGNI - You Ain't Gonna Need It.
DWIM - Do What I Mean.
DST - Do Simple Things и DTSTTCPW - Do The Simplest Thing That Could Possibly Work.
у меня пока получается, что yagni, dst и dtsttcpw - это фактически все одно и тоже
Quote:
Анти-Огни 1. Предварительное усложнение без четкого ответа "зачем?" корень всех зол (YAGNI, DST - Do Simple Things и DTSTTCPW - Do The Simplest Thing That Could Possibly Work) а) premature optimization is the root of all evil b) любую проблему можно решить путем введения дополнительного абстрактного слоя (кроме проблемы слишком большого количества абстрактных слоев).
а dwim - это часть согласованности
Quote:
20. Согласованность (говоря A, говори и B) a) полнота (код, по возможности, должен уметь обрабатывать все варианты входной информации) b) Principle of least astonishment c) DWIM
|
|
unkulunkulu
|
unkulunkulunkulu
|
|
|
|
Рег.: 12.11.2006
|
Сообщений: 18453
|
Из: 13000
|
Рейтинг: 11759
|
|
Re: Стремления (огни) которые применяются в программировании
[re: DarkGray]
09.07.2009 02:37
|
|
|
Кстати, с сегодняшнего дня я с тобой согласен в том, что SRP необязателен , более важно четко описывать все responsibilites.
|
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31415
|
|
Рейтинг: 8951
|
|
Re: Стремления (огни) которые применяются в программировании
[re: DarkGray]
09.07.2009 04:46
|
|
|
перед огнями появилось вот такое введение
Quote:
цель, которая ставится перед кодом можно сформулировать следующим образом: цель - код должен решать поставленную нами задачу за конкретный срок в том окружении, которое есть; и быть готовым к переформулировке или корректировке задачи по ходу (примечание: время на разработку и модификацию кода входит в срок)
такая формулировка цели приводит нас к следующим требованиям на код: требования: 1. Код должен решать поставленную задачу a) правильно b) быстро с) с минимальными затратами ресурсов d) целиком * порядок именно такой (т.е. лучше правильно, чем быстро; лучше быстро, чем оптимально и т.д.) 3. Код должен легко использоваться 4. Код должен быть готовым к любым условиям использования а) Код должен легко повторно использоваться b) Код должен вести себя адекватно даже в непредвиденной ситуации 5. Код должен быстро разрабатываться 6. Код должен легко модифицироваться a) Код должен читаться (легко пониматься) человеком и компьютером b) Код должен быть достаточно формализован (должна оставаться возможность автоматического\автоматизированного рефакторинга)
если ориентироваться на следующие огни, то добиться вышеуказанных требований будет проще
огни ....
|
|
Shurik
|
|
|
|
|
Рег.: 27.09.2003
|
Сообщений: 13646
|
|
Рейтинг: 787
|
|
Re: Стремления (огни) которые применяются в программировании
[re: unkulunkulu]
09.07.2009 13:11
|
|
|
Quote:
более важно четко описывать все responsibilites.
где описывать?
|
not fluffing up the experience with features that will ultimately cause you a headache |
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31415
|
|
Рейтинг: 8951
|
|
Re: Стремления (огни) которые применяются в программировании
[re: Shurik]
09.07.2009 13:17
|
|
|
Quote:
где описывать?
в названии, и списком методов.
ps 25. Название должно точно отражать содержимое (уже по названию должно быть понятно, что содержится внутри)
описывать где-то в другом месте противоречит 6.b) Код должен быть достаточно формализован (должна оставаться возможность автоматического\автоматизированного рефакторинга)
|
|
unkulunkulu
|
unkulunkulunkulu
|
|
|
|
Рег.: 12.11.2006
|
Сообщений: 18453
|
Из: 13000
|
Рейтинг: 11759
|
|
Re: Стремления (огни) которые применяются в программировании
[re: Shurik]
09.07.2009 13:19
|
|
|
Quote:
где описывать?
Ладно, описывать по-разному можно, главное, скажем, понимать, или точнее следить за тем, чтобы этот список обязанностей случайно не раздувался.
|
|