|
|
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
Как говориться, на вкус и цвет, все фломастеры - разные. Честно говоря, поимел некое время назад много секеса с названиями переменных, так что теперь даже за то, что человек назвал Int-овую переменную/функцию ia, а не просто a, уже готов говорить спасибо. Ну а уж за грамотную спецификацию - огромное спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 18:47 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
На самом деле подобный вопрос давно меня интересует, должен-ли программист быть в какой-то степени перфекционистом ? Ведь понятно, что сам по-себе спагетти код никуда не годиться, но в то-же время у меня часто бывают ситуации, когда мой код мне не нравиться, хотя он вполне читаем (с моей точки зрения), но в то-же время я ведь вижу, что можно что-то улучшить - тут выделить в отдельный метод, тут чуть подправить и переименовать итп. Ведь хочеться-же достигнуть своеобразного грааля программирования - что-бы каждый класс являл собой четкую и ясную сущность, без примеси "подозрительных" с точки зрения его интерфейса методов, каждый метод имел ясное название и делал-бы только то, что написано в его названии и ничего другого, и так далее (не один десяток таких-вот пожеланий) по стопам великих и ужастных Фаулера, Макконнела и прочих компьютерных умов нашего времени. Но ведь у подобного вылизывания есть один недостаток - поглащаемое время, и так сложно иногда определиться, хватит тут рефакторить, или стоит еще немного улучшить ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 19:28 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
StalkerSНа самом деле подобный вопрос давно меня интересует, должен-ли программист быть в какой-то степени перфекционистом ? Боюсь, внятной статистики на этот счет ни у кого нет, поэтому вопрос вкусов. Имхо - да. StalkerSно в то-же время я ведь вижу, что можно что-то улучшить .... Но ведь у подобного вылизывания есть один недостаток - поглащаемое время, Вообще говоря, понятие качества кода во всех его вариациях сводится ровно к противоположному - к экономии времени. Тут прогрессия: если сегодня хорошо поработал, завтра тебе будет легко и просто; если сегодня схалтурил, завтра придется разгребать, послезавтра завалит, а потом и вообще уже никогда ни на что не хватит времени - знай только, вставляй костыли за скрепляй разваливающуюся хрень. Любимое на тему... замени "дом" на "программу" и будет в нашу действительность Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 20:18 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
softwarer StalkerSНа самом деле подобный вопрос давно меня интересует, должен-ли программист быть в какой-то степени перфекционистом ? Боюсь, внятной статистики на этот счет ни у кого нет, поэтому вопрос вкусов. Имхо - да. StalkerSно в то-же время я ведь вижу, что можно что-то улучшить .... Но ведь у подобного вылизывания есть один недостаток - поглащаемое время, Вообще говоря, понятие качества кода во всех его вариациях сводится ровно к противоположному - к экономии времени. Тут прогрессия: если сегодня хорошо поработал, завтра тебе будет легко и просто; если сегодня схалтурил, завтра придется разгребать, послезавтра завалит, а потом и вообще уже никогда ни на что не хватит времени - знай только, вставляй костыли за скрепляй разваливающуюся хрень. Любимое на тему... замени "дом" на "программу" и будет в нашу действительность Могу добавить еще одну сентенцию, от себя - "правильный и неправильный код пишется одинаковое время". "А если нет разницы...." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 21:48 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
softwarer Боюсь, внятной статистики на этот счет ни у кого нет, поэтому вопрос вкусов. Имхо - да. ... Вообще говоря, понятие качества кода во всех его вариациях сводится ровно к противоположному - к экономии времени. все оно конечно так, но ведь совершенство-то недостижимо по определению, да и как известно лучшее враг хорошего, вот и приходиться думать, когда-же остановиться. Надо ловить какой-то призрачный баланс между временем и степенью совершенства (или степенью убожества, когда как ), что довольно непросто Николай1 Могу добавить еще одну сентенцию, от себя - "правильный и неправильный код пишется одинаковое время". если-бы это было так, то мы-бы уже давно жили при коммунизме, еда в магазинах была-бы бесплатной, а работать надо было-бы только один час в неделю, да и в этот час нечего особо делать было-бы не надо ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 15:36 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
softwarerКогда "одну задачу пишет один человек", неприятные коллизии бывают намного чаще. Вида "через полгода посмотрели, что же он сделал, и охренели". А слова "более-менее"-то специально выкинули? Равно как и предложение, где про них особо говорилось. Если программисты у вас раз в полгода в чужой код поглядывают - это клинично. Раз в полдня - еще куда ни шло. Если первый напишет бред, то второй, которому нужен код первого, заглянув туда в очередной раз, ужаснется немедленно. И к концу рабочего дня всё опять примет адекватный вид. softwarerЕсли уж дело дошло до diff-ов, надо пользоваться нормальными инструментами и нормальными технологиями, а не пережитками позапрошлого века. Но сами по себе diff-ы имеют крайне мало отношения к делу. Подскажите мне инструмент и технологию, которая из двух на 50% законченных листингов, описывающих одно и то же (но конечно же, разными способами), соберет один рабочий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 15:42 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
The_ShadoWА слова "более-менее"-то специально выкинули? Выкинул как бессмысленные. Во всяком случае, тонкости смысла идиомы "более-менее один человек" для меня трудноуловимы. Я так понимаю, имеется в виду нечто типа "чаще один, иногда например двое". The_ShadoWПодскажите мне инструмент и технологию, которая из двух на 50% законченных листингов, описывающих одно и то же (но конечно же, разными способами), соберет один рабочий. Лом стальной, длина 1200мм. Применяется сначала к головам разработчиков (которые независимо делают одно и то же), а потом к анусу руководителя проектов (который им это сказал). Ну или наоборот, как удобнее. Если же разработчики делают не одно и то же, а разные вещи в одном файле, все тривиально. Сначала с помощью лома проводится внушение тому, кто хочет применять diff, потом учим разработчиков правильной технологии использования любого visual merge. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 16:10 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
StalkerSвсе оно конечно так, но ведь совершенство-то недостижимо по определению, да и как известно лучшее враг хорошего, вот и приходиться думать, когда-же остановиться. Не знаю, не знаю. Это утверждение и последующие исходят из предположения, что "пишем плохо, надо улучшать". А я предпочитаю сразу писать хорошо :) Конечно, через какое-то время можешь осознать ошибки, набрать практику применения или увидеть новую идею - ну так берешь и улучшаешь. StalkerS Николай1 Могу добавить еще одну сентенцию, от себя - "правильный и неправильный код пишется одинаковое время". если-бы это было так, то мы-бы уже давно жили при коммунизме, ..... Ошибаетесь. Во всяком случае, я куда более согласен с Николаем. Плохой код пишут не потому, что быстрее (хотя этим чаще всего оправдываются), а потому что для этого не требуется думать. Реально плохой код не сказать что быстрее в момент написания и резко медленнее в плане последующих затрат на исправление. Здесь стоит учесть, что "хороший код" - вовсе не то же самое, что и "код, строго соответствующий выкладкам известного теоретика Х, примененным в самом неподходящем месте самым неудачным образом". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 16:33 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
softwarer Не знаю, не знаю. Это утверждение и последующие исходят из предположения, что "пишем плохо, надо улучшать". А я предпочитаю сразу писать хорошо :) Конечно, через какое-то время можешь осознать ошибки, набрать практику применения или увидеть новую идею - ну так берешь и улучшаешь. ну во-первых "хорошо" и "совершенно" - разные веши :) Или вы предпочитаете сразу писать совершенный код ? ;) Все предпочитают сразу писать хорошо. Только не всегда это получается. По мере написания лучше вникаешь в требования, осознаешь свои собственные ошибочные предположения, меняются сами требования. Все это приводит к изменениям. В конце концов даже окинув взглядом готовый класс можно вдруг осознать, что лучше было-бы сделать немного не так. Иногда даже идя по улице вдруг осознаешь какое-нибудь белое пятно, которое ты в упор не видел долгое время. После чего, как вы правильно написали, берешь и улучшаешь. Видишь, что еще можно улучшить и улучшаешь. Потом еще. Потом видишь число на календаре и начинаешь задумываться о недостижимости совершенства :) softwarer Ошибаетесь. Во всяком случае, я куда более согласен с Николаем. Плохой код пишут не потому, что быстрее (хотя этим чаще всего оправдываются), а потому что для этого не требуется думать. Реально плохой код не сказать что быстрее в момент написания хм, вы с Николаем тратите одинаковое время на придумывание имени метода DoSomeStuff() и CalculateTotalBalance() ? Вы с Николаем за пару мгновений выделяете общее из пары похожих методов в отдельное место ? Вы с Николаем в мгновение ока перемещаете методы между классами ? Что-ж, вы с Николаем гении. Я вам завидую. А вот я не гений. Мне, что-бы что-то изменить в коде требуется некоторое время. Что-бы вместо одного здорового метода с уродским названием в левом классе, написать пару методов с ясными именами и вписывающимися в интерфейс своих классов мне тоже требуется время. Иногда оно не очень большое, иногда очень. softwarer резко медленнее в плане последующих затрат на исправление. с этим не поспоришь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 18:44 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
StalkerSну во-первых "хорошо" и "совершенно" - разные веши :) Или вы предпочитаете сразу писать совершенный код ? Разные. Признаться, не очень представляю себе "совершенный код" с практической точки зрения. Если считать, что это код, к которому трудно предъявить обоснованные претензии "что улучшить", то в моем понимании хороший код и совершенный станут примерно одним и тем же :) StalkerSВсе предпочитают сразу писать хорошо. Только не всегда это получается. По мере написания лучше вникаешь в требования, осознаешь свои собственные ошибочные предположения, меняются сами требования. Все это приводит к изменениям. Именно. Можно и нужно менять по ходу, и заметных затрат времени это не требует. StalkerSхм, вы с Николаем тратите одинаковое время на придумывание имени метода DoSomeStuff() и CalculateTotalBalance() ? Не знаю как Николай, но в общем-то да. Более того, я абсолютно уверен в том, что если решение хорошо продумано, каждый участвующий в нем объект тривиально именуется. Затруднения в придумывании имени (а также желание иметь анонимные объекты, что возможно в некоторых языках) с моей точки зрения означают ровно одно: решение не продумано, программист не совсем понимает, что будет делать объект и зачем, поэтому и название под вопросом. StalkerS Вы с Николаем за пару мгновений выделяете общее из пары похожих методов в отдельное место ? Лично я, собираясь написать несколько строк, и вспоминая, что "похожее я уже писал", не испытываю проблем с тем, чтобы вместо прискорбно типичного Ctrl-C Ctrl-V выделить метод. И времени на это тратится.... ну вот честно, по сравнению например с написанием хорошего набора юнит-тестов к тому же коду о таких тратах и говорить-то бредово. А хороший код, кстати, существенно экономит время на юнит-тесты :) StalkerSМне, что-бы что-то изменить в коде требуется некоторое время. Что-бы вместо одного здорового метода с уродским названием в левом классе, написать пару методов с ясными именами и вписывающимися в интерфейс своих классов мне тоже требуется время. Иногда оно не очень большое, иногда очень. Хм. Скажем так, по моим представлениям работы пальцами здесь секунды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 19:16 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
softwarer Именно. Можно и нужно менять по ходу, и заметных затрат времени это не требует. мне почему-то кажется, что это сильно зависит от того, что конкретно меняется ;) softwarer Более того, я абсолютно уверен в том, что если решение хорошо продумано, каждый участвующий в нем объект тривиально именуется. Затруднения в придумывании имени (а также желание иметь анонимные объекты, что возможно в некоторых языках) с моей точки зрения означают ровно одно: решение не продумано, программист не совсем понимает, что будет делать объект и зачем, поэтому и название под вопросом. угу. А что-бы решение было хорошо продумано, времени-то случаем не надо тратить ? Вы-б еще сказали, что если решение продумано вплоть до названия каждой переменной, то набирание кода не отнимет много времени. Ну да, не отнимет, кто-бы спорил :) softwarer Лично я, собираясь написать несколько строк, и вспоминая, что "похожее я уже писал", не испытываю проблем с тем, чтобы вместо прискорбно типичного Ctrl-C Ctrl-V выделить метод. И времени на это тратится.... ну вот честно, по сравнению например с написанием хорошего набора юнит-тестов к тому же коду о таких тратах и говорить-то бредово. в общем, затраты на рефакторинг у вас пренебрежительно малы. Что-ж, могу вас только поздравить с этим замечательным фактом. Но судя по всему, это не везде так, ибо зачем тогда тому-же Фаулеру вводить в свою книгу подглаву "Уменьшение стоимости рефакторинга" ? softwarer Хм. Скажем так, по моим представлениям работы пальцами здесь секунды. в смысле секунды ? Напечатать в редакторе код ? А думать, в какие классы поместить методы и как они будут выглядеть и называться, будет сам редактор кода ? Мне-б такой редактор ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 21:11 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
StalkerS ... Все предпочитают сразу писать хорошо. Только не всегда это получается. По мере написания лучше вникаешь в требования, осознаешь свои собственные ошибочные предположения, меняются сами требования. Все это приводит к изменениям. В конце концов даже окинув взглядом готовый класс можно вдруг осознать, что лучше было-бы сделать немного не так. ... Видишь, что еще можно улучшить и улучшаешь. Потом еще. Потом видишь число на календаре и начинаешь задумываться о недостижимости совершенства :) К сожалению, это горькая правда. Написать все верно и с первого раза довольно проблематично. Да, наверное, это просто невозможно. Если бы все сразу всё правильно проектировали, писали совершенный код, то тогда просто не существовало бы такого понятия, как "рефакторинг". И тогда бы ни Макконнелы, ни Фаулеры не издавали бы свои замечательные руководства, не издавалась бы литература по шаблонам проектирования. P.S. Да и это было бы просто скучно. :) Но это вовсе не означает, что не нужно стремиться к совершенству. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 07:35 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
StalkerSмне почему-то кажется, что это сильно зависит от того, что конкретно меняется ;) Безусловно. Я говорю о случае "пишешь хороший код и по ходу дела соображаешь, что пару помарок таки допустил". StalkerSугу. А что-бы решение было хорошо продумано, времени-то случаем не надо тратить ? Надо. И что самое удивительное - примерно столько же, сколько нужно, чтобы решение было плохо продумано. Разница при этом в том, работает ли мозг как должно или вхолостую. StalkerSв общем, затраты на рефакторинг у вас пренебрежительно малы. Уточню: на рефакторинг "прямо по ходу создания", о котором мы и говорим в смысле "совершенствовать можно до бесконечности". Разумеется, со временем меняются требования, появляются новые задачи и новые модули, появляется новый взгляд на систему - это уже порой требует рефакторинга вплоть до "все переписать". StalkerSв смысле секунды ? Напечатать в редакторе код ? А думать, в какие классы поместить методы и как они будут выглядеть и называться, будет сам редактор кода ? Мне-б такой редактор ;) Не понимаю я Вас, честно. Если я хочу разбить на части большую процедуру НарисоватьЧеловечка, у меня как-то не возникает вопроса с названиями процедур НарисоватьРуку, НарисоватьНогу и ГдеТоЗдесьДолжнаБытьГолова. Ну максимум сходить на мультитран за английским термином. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 09:58 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
softwarer Безусловно. Я говорю о случае "пишешь хороший код и по ходу дела соображаешь, что пару помарок таки допустил". а если помарка большая ? Например осознал, что иерархия классов неверная ? Вы это тоже на пару минут переделаете ? softwarer Надо. И что самое удивительное - примерно столько же, сколько нужно, чтобы решение было плохо продумано. действительно удивительно. Первый раз слышу подобную мысль. Всегда думал, что что-бы сделать что-то хорошее, надо приложить больше сил и времени. Возможно вы имеете ввиду ситуацию, когда решаемая проблема знакома разработчику, и ему действительно не надо напрягаться для создания решения (либо сама задача тривиальна). Действительно, мозг подключать почти не надо, все сделается почти на автомате. Но часто-ли такое происходит ? Имхо нет. Хотя действительно, у кого как ... softwarer Уточню: на рефакторинг "прямо по ходу создания", о котором мы и говорим в смысле "совершенствовать можно до бесконечности". Разумеется, со временем меняются требования, появляются новые задачи и новые модули, появляется новый взгляд на систему - это уже порой требует рефакторинга вплоть до "все переписать". теоретически, "все переписать" может случиться и без изменения требований вообще. Ну поняли, что выбрали кардинально не тот путь. И если есть желание совершенствовать - то ... softwarer Не понимаю я Вас, честно. Если я хочу разбить на части большую процедуру НарисоватьЧеловечка, у меня как-то не возникает вопроса с названиями процедур НарисоватьРуку, НарисоватьНогу и ГдеТоЗдесьДолжнаБытьГолова. Ну максимум сходить на мультитран за английским термином. а если взять что-нибудь посложнее человечка ? Например моделирование полета сверхзвукового истребителя ? Тоже никаких вопросов не возникнет ? Боюсь сказать банальную вешь, но при программировании приходиться принимать массу решений буквально на каждом шаге (собственно как и в любой инженерной науке, по сути программисты те-же конструктора истребителей или автомобилей). Если вы хотите, что-бы ваш истребитель быстро летал, метко стрелял и не разваливался в воздухе - будьте добры внимательно подумать над его конструкцией, а если в ходе проектирования выяснился промах - что-то в нем переделать. Каким образом это может занять одинаковое время с проектированием чуда техники, у которого отвалятся крылья при попытке пилота завести двигатель ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 18:15 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
softwarerВыкинул как бессмысленные. Во всяком случае, тонкости смысла идиомы "более-менее один человек" для меня трудноуловимы. Я так понимаю, имеется в виду нечто типа "чаще один, иногда например двое". Имеется в виду один (1) автор кода и несколько (1-...) человек, которые не являются авторами (т.е. сами этот код не пишут\не дописывают) однако смотрят туда либо по долгу своей работы, когда им для своей части нужен код автора, либо просто ради интереса заглядывают. softwarerЕсли же разработчики делают не одно и то же, а разные вещи в одном файле, все тривиально. Сначала с помощью лома проводится внушение тому, кто хочет применять diff, потом учим разработчиков правильной технологии использования любого visual merge. Смысл этой "правильной технологии" основывается на всё том же банальном diff, однако с более крутым внешним представлением. Когда я писал про "diff", я имел в виду сам принцип. А не собственно программу музейной древности с консольным выводом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2008, 08:34 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
Фсё уже придумано до вас http://java.sun.com/docs/codeconv/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2008, 12:38 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
StalkerSа если помарка большая ? Например осознал, что иерархия классов неверная ? Мм.. а это еще входит в "пишешь хороший код"? StalkerSа если взять что-нибудь посложнее человечка ? Например моделирование полета сверхзвукового истребителя ? Тоже никаких вопросов не возникнет ? Если я плотно работаю с моделированием полетов, то в чем их принципиальное отличие от человечка? StalkerSЕсли вы хотите, что-бы ваш истребитель быстро летал, метко стрелял и не разваливался в воздухе - будьте добры внимательно подумать над его конструкцией, а если в ходе проектирования выяснился промах - что-то в нем переделать. Каким образом это может занять одинаковое время с проектированием чуда техники, у которого отвалятся крылья при попытке пилота завести двигатель ? Очень простым. Процесс "проектирования чуда техники" приводит к тому, что крылья у него отваливаются гораздо раньше, еще когда двигатели не смонтированы. Их кое-как прилепляют жевательной резинкой, монтируют двигатели и обнаруживают хвостовое оперение на носу. Переносят - оказывается, оно так поддерживало крылья, и теперь те снова отвалились. В итоге до момента первого запуска двигателей проходит нисколько не меньше времени, скорее наоборот. Ну а качество результата... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2008, 13:17 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
Для тех, кто до сих пор верит, что getWorkTime(плохой_код) < getWorkTime(хороший_код): 1) Во-первых, собственно написание кода всегда как минимум неявно разделено на "написание" и "проектирование". Иногда разделено явно, но в массе случаев деление идет не далее головы программиста. Однако оно всегда присутствует. 2) Хороший_код требует N времени на проектирование. Плохой код требует 0 времени на проектирование, но X > N времени на "доработку напильником". 3) Под словами "написали <хороший\плохой> код" следует понимать "написали код, и он работает как надо". А вовсе не "написали код, а теперь поехали тестировать". В последнем случае действительно на формальное написание плохого_кода уйдет меньше времени, однако еще будет далеко не нулевой период от момента "код написан" до момента "код работает как надо". И в итоге подход "написать как выйдет, а потом поправить" всегда и везде длинее подхода "обдумать и написать максимально хорошо". Разумеется, когда программист не шибко хорошо знаком с предметной областью задачи, либо с применяемыми инструментами (учится/осваивается/врубается в проблему) - писать "сразу хорошо" едва ли выйдет. Однако к этому нужно стремиться, и это вовсе не идеал в бесконечности, а вполне нормальный рабочий подход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2008, 11:44 |
|
||
|
Стандартизация кода и общий процесс разработки приложений
|
|||
|---|---|---|---|
|
#18+
edges7 StalkerS ... Все предпочитают сразу писать хорошо. Только не всегда это получается. По мере написания лучше вникаешь в требования, осознаешь свои собственные ошибочные предположения, меняются сами требования. Все это приводит к изменениям. В конце концов даже окинув взглядом готовый класс можно вдруг осознать, что лучше было-бы сделать немного не так. ... Видишь, что еще можно улучшить и улучшаешь. Потом еще. Потом видишь число на календаре и начинаешь задумываться о недостижимости совершенства :) К сожалению, это горькая правда. Написать все верно и с первого раза довольно проблематично. Да, наверное, это просто невозможно. Если бы все сразу всё правильно проектировали, писали совершенный код, то тогда просто не существовало бы такого понятия, как "рефакторинг". И тогда бы ни Макконнелы, ни Фаулеры не издавали бы свои замечательные руководства, не издавалась бы литература по шаблонам проектирования. P.S. Да и это было бы просто скучно. :) Но это вовсе не означает, что не нужно стремиться к совершенству. Надо писать такой код, который легко поддается рефакторингу. Не надо заранее гадать - будет то, что я сейчас пишу отдельным классом-методом или нет. Если код выделяется в отдельный логический блок, то надо его выделить в самый простой, впроть до { } только надо постараться сделать его отторгаемым. Потом, если этот код понадобиться повторить, то можно будет его "отторгнуть" и куда-нибудь приспособить (в класс, метод, библиотеку). Это, в общем, не долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2008, 00:22 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=35242897&tid=1345345]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
188ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 514ms |

| 0 / 0 |
