Комментарии 39
Я предпочитаю руководствоваться этими принципами пиши-код-блять.рф
-12
По себе знаю — без тестирования не обойтись
Правда я сначала пишу код как мне удобно, потом пишу тесты, потом подгоняю под тесты (хотя считается, что нужно наоборот, но у меня подход такой: сначала — идея, потом реализация, потом тестирование, в запутанных случаях отладка).
Кстати, есть ли какой-нибудь gpl инструмент для проверки coverage для с++?
Правда я сначала пишу код как мне удобно, потом пишу тесты, потом подгоняю под тесты (хотя считается, что нужно наоборот, но у меня подход такой: сначала — идея, потом реализация, потом тестирование, в запутанных случаях отладка).
Кстати, есть ли какой-нибудь gpl инструмент для проверки coverage для с++?
0
Эти принципы совсем-совсем не про то.
+1
Сильно, но чтоб понять что тут написано нужен серьезный опыт. Примеры выстрелов в ногу привели бы что-ли?
+13
Статья-тезисов, Patterns Head First в кратком изложении
+12
Источник Эрик Фримен?
+5
Давно стемлюсь к сильной связности, но слабой связанности.
+3
По этой причине адекватному переводчику желательно использовать англоязычные термины хотябы в скобках, для начинающего разработчика и так в порядке вещей путаться в coupling и coherence, чтобы дополнительно путать его переводам.
Мневмоправило (хотя и не идеально отражающее соотношение сущностей):
coupling — от couple, парочки, парочки зависят друг от друга.
coherense — согласованность, парочка согласна делать ремонт вместе.
Мневмоправило (хотя и не идеально отражающее соотношение сущностей):
coupling — от couple, парочки, парочки зависят друг от друга.
coherense — согласованность, парочка согласна делать ремонт вместе.
0
Лучше уж подробней изложить про основной императив снижения сложности, выделенный МакКоннелом в его формулировках, чем запоздалые на 10-15 перепевки Code complete авторами из разряда «лишь бы засветиться» со всякими введенными принципами имени себя, лишь что-то необычное сказать, которые стройного видения области в голове не формируют.
Что касается тезисов, то не читав оригинала и не понимая о чем идет речь можно придраться к каждому второму слову, просто для примера:
>Это основа всего ООП. Надо выделить компоненты, которые могут измениться, и отделить их от части системы, которая останется неизменной.
Что представляют из себя «неизменные» части и как их определить до окончания разработки?
>Естественно, везде фанатично применять композицию и совсем отказаться от наследования было бы неразумно.
Ну и когда же ее в итоге применять? Есть же два элементарных вопроса, которые надо надо задавать при создании модели взаимодействия классов «Являются ли B, C, D разновидностью A?» или «Состоит ли A из B, C, D?», ответ на который достаточно однозначно говорит об уместности того или иного подхода.
«Используйте как можно чаще, но не злоупотребляйте» — это рекомендация ни о чем.
И т.д.
Что касается тезисов, то не читав оригинала и не понимая о чем идет речь можно придраться к каждому второму слову, просто для примера:
>Это основа всего ООП. Надо выделить компоненты, которые могут измениться, и отделить их от части системы, которая останется неизменной.
Что представляют из себя «неизменные» части и как их определить до окончания разработки?
>Естественно, везде фанатично применять композицию и совсем отказаться от наследования было бы неразумно.
Ну и когда же ее в итоге применять? Есть же два элементарных вопроса, которые надо надо задавать при создании модели взаимодействия классов «Являются ли B, C, D разновидностью A?» или «Состоит ли A из B, C, D?», ответ на который достаточно однозначно говорит об уместности того или иного подхода.
«Используйте как можно чаще, но не злоупотребляйте» — это рекомендация ни о чем.
И т.д.
+6
Хм. похоже, половину принципов я уяснил для себя интуитивно.
0
А эт распространная ситуация — человек интуитивно использует какой-нибудь принцип или паттерн, при этом не знает как это все формально называется. ИМХО, эт естественно и даже хорошо — лучше органично сделать, при этом заюзать все паттерны\принципы, что надо, чем зная кучу названий, не уметь их применять.
Ну а в идеале — знать и применять, конечно же :)
Ну а в идеале — знать и применять, конечно же :)
+1
По этому поводу вспоминается холивар на тему подгонки кода под unit-тесты…
я начал писать на C# в феврале, а смотря на свой код после прочтения статьи понял что использую вполне спокойно и считаю это логичным
я начал писать на C# в феврале, а смотря на свой код после прочтения статьи понял что использую вполне спокойно и считаю это логичным
0
В общем используйте Spring )
-3
Это всё перевод или персональный опыт автора? Если перевод, то кто источник и где?
+1
НЛО прилетело и опубликовало эту надпись здесь
а мне очень напомнило Code Complete)
0
В дополнение к книге, которую вы посоветовали, принципы проектирования классов и сборок подробно описаны в книге www.amazon.com/Agile-Principles-Patterns-Practices-C/dp/0131857258
0
Для тех, кто хочет эту книгу купить, я бы рекомендовал посмотреть на Амазоне. Даже с учетом недешевой доставки, это все равно будет раза в полтора дешевле, чем по ссылке выше. Ну и есть русская версия, однако что там с качеством перевода я не знаю.
0
Не хватает:
9. Принцип замещения Лисков.
9. Принцип замещения Лисков.
-1
НЛО прилетело и опубликовало эту надпись здесь
а я вот вижу кучу ссылок на мсдн по использованию интерфейсов и делегатов.
код, красивый, работает.
но что это и нафига оно нужно — до сих пор понять не могу. и как его исполдьзовать тоже.
Взял книгу по шарпу — Троелсена, там тоже описано, но сути я так и не понял (
код, красивый, работает.
но что это и нафига оно нужно — до сих пор понять не могу. и как его исполдьзовать тоже.
Взял книгу по шарпу — Троелсена, там тоже описано, но сути я так и не понял (
0
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Восемь принципов программирования, которые могут облегчить вам жизнь