Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Алгоритм Дейкстры [...] относится к «жадным» алгоритмам, то есть достаточно эффективен для поиска путей на относительно небольших графах.
А уж современные писульки а-ля «Совершенный код» — это вообще откровенное «бумагомарательство»
Аргументировать что? Вы сей опус читали?
Там большинство «полезных советов» либо тривиальны донельзя
(скажем, советы по наименованию)
либо языко-специфичны (скажем, советы по использованию исключений для обработки ошибок
Если бы это всё называлось как-нибудь… ну не знаю «Записки стареющего Java-разработчика»
уж чересчур претенциозное название
Так чего ради было столько бумаги марать?
Тривиальны для кого?
Вы никогда не слышали про две фундаментальных проблемы computer science?
И что, они теперь бесполезны?
Вас не смущает, что первое издание CC вышло за два года до Java?
А что претенциозного в названии Code Complete?
Ради того, чтобы можно было взять, открыть нужный раздел, и найти мнение, подтверждение конкретными исследованиями (а не абстрактным «мне кажется, что»).
Да для любого человека с IQ, достаточным для того, чтобы быть программистом.
Первый раз слышу такое словосочетание. Это что ещё за «мем»?
Вообще, основная проблема в программировании — борьба со сложностью.
Нет, конечно.
Но, во-первых, как я уже сказал, полезного там на 450 страницах — «кот наплакал».
Этих всяких Мартинов полезно читать после Дейкстры, а не до, и уж тем более не вместо.
труды Дейкстры нынче библиографическая редкость
И что это меняет?
А что претенциозного в названии Code Complete?
В том что это оксюморон, нет? Очевидно недостижимая цель
Это мы сейчас за какую книгу то говорим?
То есть программистам обучение не нужно, я вас правильно понял?
«There are only two hard things in Computer Science: cache invalidation and naming things.» (Phil Karlton, по цитатам, оригинал не найден)
Если вы его там не нашли, это не значит, что его там нет.
А кто-то где-то говорил, что надо читать МакКоннела и/или Мартина и/или Фаулера и/или Ханта/Томаса вместо Дейкстры?
«Code complete»— это устоявшееся выражение, означающее «программист работу закончил».
За Code Complete, очевидно.
Учиться надо
Тоже мне фундаментальные проблемы.
Там, как минимум, втрое можно сократить без малейшей потери смыслов.
Берёте случайный ресурс для программистов и смотрите некий список книг, обязательных к прочтению
Так что, простите, не надо «ла-ля»: нет тут никакого устоявшегося выражения.
Там действительно много полезных отсылок к монографиям тех же Дейкстры, Вирта, GoF, и прочих
Какая разница: читать оригинал с «мне кажется что», или читать книгу, ссылающуюся на этот оригинал?
И эта Ваша Computer Science пока ещё слишком молодая наука
Это применимо почти к любой литературе, написанной человеком на натуральном языке. Он (натуральный язык), знаете ли, избыточен. Интереса ради, можете попробовать применить то же самое к Notes On Structured Programming, эффект получается занятным.
То есть вы думаете, автор его придумал из головы?
У Дейкстры есть хотя бы одна монография?
Так речь не идет о ссылках на «мне кажется что», речь идет о ссылках на конкретные статистические наблюдения за индустрией.
Каждое отдельное предложение в текстах Дейкстры может казаться тривиальным, но в сумме у него получаются очень даже нетривиальные выводы.
Я не могу утверждать, что конкретно автор имел ввиду под Code Complete.
Ну привет. Упомянутые «Notes on Structured Programming» — вполне себе монография.
Про первое всё уже сказано и не раз: «Существуют три вида лжи: ложь, наглая ложь и статистика».
Про второе: а что если индустрия идёт не туда?
Что если все эти советы несущественны?
Статистика — это факты, можно спорить с методикой сбора, можно спорить с методикой расчетов или выводами, но опровергать исследование только на основании того, что оно статистическое — глупо.
NoSP — монография [...] Никаких ограничений по объёму на монографии не накладывается, монография — это по сути просто писанина на одну конкретную тему.
Вы оригинальные исследования то читали или просто верите автору «на слово»?
Окей, давайте начнем с простого: какое определение монографии вы используете, и где вы его взяли?
Конечно, верю на слово. В этом, собственно, смысл рецензируемой (и редактируемой) публикации — проверка источников делается рецензентом и техническим редактором.
Если я буду идти по каждой ссылке в книге (а не только по интересным мне или по тем, которые нужны для конкретной дискуссии), я никогда читать не закончу.
ГОСТ 7.60-2003, например, определяет монографию как (стр. 6, п. 3.2.4.3.1.1) «научное или научно-популярное издание, содержащее полное и всестороннее исследование одной проблемы или темы и принадлежащее одному или нескольким авторам».
Но, как я уже указывал выше, рецензирование имело место.
Как по мне, Вы поступаете не совсем правильно: цитирующий автор может запросто (нарочно или нет) исказить смысл цитируемого исследования, некорректно его интерпретировав, например.
А иначе, будь по-вашему, их бы давали только рецензентам, а из публичных копий убирали
А просмотреть хотя бы резюме по интересующим — это не такая и времязатратная задача.
эка проблема глазами пробежать десяток другой abstract'ов.
Вам ссылки, повторюсь, за этим и даны.
… за что его должны побить по рукам рецензент и/или редактор.
Серьезно? Вы пробовали это проделать для того же МакКоннела?
А в реальном, как говориться, Вам никто ничего не должен.
Программисты должны писать чистый код — это из той же оперы.
Я подобной работой занимаюсь каждый день.
У нас с вами разные «реальные миры».
Так вот, затраты времени для меня несопоставимы с полученной выгодой.
Впрочем, для изначальной темы обсуждения достаточно уже и того, что вопрос "полезно ли учиться по МакКоннелу" благополучно забыт, а обсуждаются только и исключительно монографии Дейкстры и статистические исследования. Что наводит на мысль, что с изначальным посылом вы больше не спорите.
А какой там был изначальный посыл?
«Полезно ли учиться по МакКоннелу» очевидно: «Нет, так как там особо нечему учиться.»
Изначальный посыл был всё-таки про Clean Code
По второму вопросу, в очередной раз повторю, правильному именованию, документированию кода, основы рефакторинга — это всё существенно только для кодирования. С точки зрения программирования — это «шелуха».
Это не мешало вам потом все те же самые претензии высказывать Code Complete (я название упомянул сразу же). Кстати, в названии Clean Code тоже нет ничего претенциозного.
И еще раз кстати: а чем, бишь, мартиновские соглашения по именованию "тривиальнее" макконнеловских? Между прочим, прекрасная глава, еще и существенно менее занудная, нежели у МаКоннела.
Потому что всё то же самое верно и про Code Complete
Я не считаю мартиновские соглашения по именованию «тривиальнее» макконнеловских. Я и те, и другие считаю вещью даже не второстепенной и тривиальной. Вот я сейчас глянул с свои заметки по книге Мартина, я себе из всей «воды» про именования «отжал» только одно замечание,
Я не говорю, что остальные советы вредны или бесполезны, они просто ну донельзя тривиальны. При их прочтения у меня возникает только один вопрос: «А как вообще может в голову придти делать как-то иначе?»
Но я повторю свою изначальный тезис: это всё ну уровень Дейкстры.
I don't know how many of you have ever met Dijkstra, but you probably know that arrogance in computer science is measured in nano-Dijkstras.Не знаю, относится ли это непосредственно к Дейкстре… но к некоторым моментам этой переписки — емким, четким и по существу — вполне… ;)
брал вилку слева от себя… приходилось брать вилку и справа от себя… Если вилка требовалась другому философу, ему приходилось ждать, пока она освободится.
Прямо скажем, странно противопоставлять ремесло и творчество.
Эдсгер Дейкстра: в поисках «кратчайшего пути» к осознанному программированию