Закончил недавно относительно большой проект по работе -- ~10k строк на несколько подзабытом мной C++.
Дабы не было совсем скучно, решил использовать исключительно статический полиморфизм -- вышло даже достаточно удобно, в итоге virtual даже не понадобился ни разу. Единственно, немного напрягли сначала длиннющие сообщения об ошибках, но я их
(
Read more... )
Comments 18
if наверняка без {} написал :-). В FreeBSD coding style требует отсутствия скобок, если оператор в ifе единственный. В результате даже очень хорошие программисты пытаются туду добавить второй, забыв добавить скобки.
Я такой аккуратностью похвастаться не могу. Мне типизация сильно в отладке помогает. На C++, правда, много ошибок связанных с "политикой владения" бывает (эх, надо на Cyclone переходить).
Reply
В моем случае, это, в основном, были забытые manual template instantiation (хз как это перевести) -- я библиотеку делал. Так что без компилятора явные ошибки бы вылезли при первом же запуске программы :)
> if наверняка без {} написал :-) В FreeBSD coding style требует отсутствия скобок, если оператор в ifе единственный. В результате даже очень хорошие программисты пытаются туду добавить второй, забыв добавить скобки.
Странно. FreeBSD coding style заодно требует табуляцию в 8 пробелов, так что очень сложно не заметить, что оператор не попал в блок if :) Не, у меня там был {}, просто я уже в готовый код if добавлял, и потом часть операторов внес в блок, а один забыл (то ли промахнулся, то ли тупняк нашел какой-то).
> Я такой аккуратностью похвастаться не могу. Мне типизация сильно в отладке помогает.Ну я там указал "имхо" =) Вообще у меня и на динамических языках проблемы с типизацией ( ... )
Reply
1) Это потому, что тебе их все выловили,
2) C++ не проверяет хотя бы "достаточно хорошо."
Напиши проектик на 1K строк на Хаскеле или Камле. Все будет совсем по-другому.
Reply
Я их просто не совершил =)
> 2) C++ не проверяет хотя бы "достаточно хорошо."
Тоесть, ошибки у меня все-таки есть, но не обнаружены и всплывут потом? :)
> Напиши проектик на 1K строк на Хаскеле или Камле. Все будет совсем по-другому.
Я с радостью, только пока времени маловато. К тому же, это только докажет, что в сильная типизация хорошо помогает в хаскелле или камле :)
Reply
Во-во. Ты взял в качестве примера плохой вариант статической проверки типов и на основании этого делаешь далеко идущие выводы.
Reply
Reply
П.С. Неужели не одного virtual? Даже CRTP не использовал?
П.П.С. Boost существенно облегчает жизнь, меньше _своих_ костылей - чище и читаймее код.
Reply
У меня имхо, что главное -- это максимально возможный code reuse, но только без фанатизма :)
> Неужели не одного virtual? Даже CRTP (http://en.wikipedia.org/wiki/Curiously_Recurring_Template_Pattern) не использовал?
Неа :) Из всей этой магии только mixin'ы пригодились, и даже очень в тему оказались.
> Boost существенно облегчает жизнь, меньше _своих_ костылей - чище и читаймее код.
Возможно, но у нас в компании его люто ненавидят =) Почему так, я сам особо не понял, но, видимо, были какие-то прецеденты :)
Reply
(The comment has been removed)
Reply
Reply
Leave a comment