Новый С++ меня радует всем. Код стало писать намного проще, и при этом он стал более эффективным и безопасным. Из всех докладов больше всего понравилась доклад Страуструпа, у него очень удачные примеры, которые действительно изменили ход моих мыслей о том как лучше программировать вообще и на С++ в частности.
На иконки равнодушно, т.к. всегда отключаю тулбары в IDE, текстовых редакторах, файловых менеджерах итд, тк. гораздо удобнее пользоватся хоткеями + больше свободного место под редактор и различные view-хи, а если хоткей забыл всегда есть менюшки, которые напомнят его. А темная цветовая схема мне понравилась, только бекграунд у редактора слишком темный, посветлее предпочитаю.
У меня есть железная отмазка — я писал это 6:33 утра и мой мозг после ночи бодрствования не смог оформить правильно поток моих мыслей. Я хотел сказать, что make существует уже очень давно и технологии постоянно развивается, а make как был так и остается на своем очень низком уровне. Но уровень технологий уже сильно вырос с его времен и соответственно требует новых подходов и решений к сборке и управлению ей.
Перевожу проект с make на scons (сейчас он переходит в фазу активного тестирования и внедрения), в ближайшем будующем напишу несколько статей на эту тему. Могу сказать одно — я убедился что make это устаревший анархаизм. Хотя scons тоже не идеален, но мне на его базе удалось сделать достаточно удобную систему сборки, а точнее целый фреймворк который я в данный момент дорабатываю и смогу использовать с любым другими проектами в будущем (а может даже кто-то еще захочет).
Достаточно часто использовал идиомы pimpl, ни с одной из проблем ни реальных, ни в тестовых/эксперементальных проектах не сталкивался.
Pimpl и const — достаточно правильно строить класс и определять методы pimpl как const, никаких оберток не нужно. Вот, например, метод определенный в классе pimpl.
void TestImpl::impl::constMethod(int value) const { _value = value; }
И теперь при вызове:
void TestPimpl::constMethod(int value) const
{
_pimpl->constMethod(value);
}
Мы получаем ошибку компилятора о const-некорректности.
2-ая проблема не касается pimpl конкретно. Тоже самое будет если и без pimpl инициализировать какую-либо переменную в конструторе, передав ей указатель на сам класс.
someClass::someClass(): _someVar(this)
Естественно если в конструкторе _someVar вызывать методы someClass это приведет к undefined behaviour, это, кстати, обьясняют на первых курсах в ВУЗе.
Да, проблемка актуальна.
Решил для себя так — пишу комменты в каком-нибудь notepad'е(sublime), потом ctrl+A, ctrl+C, ctrl+V.
А самое обидное, что бывает набиваешь какой-то «легкий» коммент (1-2 строки), постишь его, а потом видишь какую-нибудь дурацкую опечатку, а исправить — хрен. Хотя конечно это понятно, что надо бы прочитать то что написал — но часто из-за того что коммент печатается очень быстро, его отправка происходит почти на автомате.
Хочу лишь добавить, что часто удобнее не скрывать информацию, а предоставлять ложную. Это и удобнее, и тот кто будет пытаться вас деанимизировать голову сломает, пытаясь угадать что правда, а что нет.
Возникло ощущение, что в Вашей компании работают одни студенты-кодеры. Можно было бы хотя бы совсем нубов отсеить, использовав книгу, в честь которой назван раздел. Ну или хотя бы не тратить время полезных сотрудников на обучение студентов, а просто дать им в руки эту книжку, и как сказал один известный персонаж — «выучить от сих до сих, приду проверю, если не выучите ...» (с) Сами знаете кто.
… хотя конечно бывают случаи, когда выбрать нет возможности, но они достаточно редки. Ну по крайне мере все те кто это читают уже под эту категории не попадают.
Каждый человек сам выбирает что ему делать и как жить дальше, хотя конечно быв. Хочет быть хомячком — будет сидеть на фейсбуке и его клонах, фапать на обзоры гаджетов итд. Захочет стать личностью — сам выберет себе приоритеты в жизни.
Спасибо за статью, очень интересно было прочитать на тему data mining.
Тоже хотел спросить на тему «почему уходит игроки», разве разработчики форумы/социалки не хотят почитать? Часть людей пишет (далеко не все конечно), что ушли по какой-либо причине и часто ее подробно описывают, да еще и очень красочно.
А я еще и для винды нашел удобную вещицу для этого дела — TypeAndRun. На '+' на нампаде повесил его вызов, алиасы с автоподстоновкой позволяют запускать необходимые приложения (да еще и с возможностью задавать параметры комадной строки) за 2-3 нажатия на кнопки клавиатуры + enter. Вообщем, почти *nix-style.
Эта болезнь называется — любитель. Причем не обезательно приминительно к программированию, с любым хобби возникают подобные проблемы, если оно относится к креативу.
GNU Utils были написано в уже достаточно далекие времена, и сейчас уже просто никто не будет переписывать то что так давно написано и самое главное — работает. Но прогресс уже ушел вперед.
А форматирование кода — это помоему совершенно не та вещь на которую нужно смотреть в проекте. Все современные IDE поддерживают выбор и настройку форматирования. Плюс еще и к тому же, если я не ошибаюсь, в самом gnu есть утилитка indent, которая позволяет изменять форматирование исходников.
Толковых докладов было очень мало (у меня получилось 3 из тех что я слушал), учитывая сумму (а она была 2.5 руб, если вы не студент), уровень конференции был ниже среднего, а если прибавить сюда организационные недочеты, то он точно ниже среднего. Единственное светлое пятно, лично для меня был Федор Ярочкин, единственный доклад достойный уровня, который рекламировали. Вот таких бы докладчиков, да побольше.
Pimpl и const — достаточно правильно строить класс и определять методы pimpl как const, никаких оберток не нужно. Вот, например, метод определенный в классе pimpl.
void TestImpl::impl::constMethod(int value) const { _value = value; }
И теперь при вызове:
void TestPimpl::constMethod(int value) const
{
_pimpl->constMethod(value);
}
Мы получаем ошибку компилятора о const-некорректности.
2-ая проблема не касается pimpl конкретно. Тоже самое будет если и без pimpl инициализировать какую-либо переменную в конструторе, передав ей указатель на сам класс.
someClass::someClass(): _someVar(this)
Естественно если в конструкторе _someVar вызывать методы someClass это приведет к undefined behaviour, это, кстати, обьясняют на первых курсах в ВУЗе.
Решил для себя так — пишу комменты в каком-нибудь notepad'е(sublime), потом ctrl+A, ctrl+C, ctrl+V.
А самое обидное, что бывает набиваешь какой-то «легкий» коммент (1-2 строки), постишь его, а потом видишь какую-нибудь дурацкую опечатку, а исправить — хрен. Хотя конечно это понятно, что надо бы прочитать то что написал — но часто из-за того что коммент печатается очень быстро, его отправка происходит почти на автомате.
PS Статья непроизвольно вызвала ассоциации с серий игр GTA — country of great opportunities! Мне кажется тут главное, не утонуть в этих возможностях.
Тоже хотел спросить на тему «почему уходит игроки», разве разработчики форумы/социалки не хотят почитать? Часть людей пишет (далеко не все конечно), что ушли по какой-либо причине и часто ее подробно описывают, да еще и очень красочно.
А форматирование кода — это помоему совершенно не та вещь на которую нужно смотреть в проекте. Все современные IDE поддерживают выбор и настройку форматирования. Плюс еще и к тому же, если я не ошибаюсь, в самом gnu есть утилитка indent, которая позволяет изменять форматирование исходников.