LINUX.ORG.RU
ФорумTalks

Рецензия на книги А. В. Столярова

 , ,


1

4

Столяров (@Croco) трудился в университете, как полагается, вел несколько курсов лекций. Все преподаватели ведут несколько смежных курсов, но в отличие от большинства, Столяров выкладывал свои методички в публичный доступ. В 2016 году за деньги с донатов он взял материал этих курсов, расширил его беседами с лекций и практик и все это опубликовал. В итоге получился обыкновенный курс программирования любого, подчеркиваю, любого профильного вуза страны.

Что важно, этот курс стал бесплатно доступен любому желающему в два клика, без необходимости проходить бюрократический фильтр и платить цену автомобиля за доступ к информации. Благодаря работе Столярова любой заинтересованный человек получает качественно отредактированный конспект лекций МГУ по программированию с пояснениями. По содержанию это +/- 1999 или 2000 год.

Абсолютно ничего нового, революционного, свежего Столяров не написал. К моменту публикации (2016 год) по темам, затронутым Столяровым, было опубликовано десятки книг, которые пережили множество изданий. Например, книги по TCP/IP от издательства O’Reilly к тому времени издавались уже 20 лет и имели по 7-8 улучшенных и дополненных изданий.

Мало того, что Столяров опубликовал прописные истины администрирования и программирования, он еще их щедро разбавил философией лаборанта из 90-х. То есть технические книги стали содержать в себе конспекты типовых разговоров второкурсников за бутылкой водки. Что, конечно, добавило живости в чтиво, но дурно влияет на 17-летних подростков, которые пьяный трёп обслуживающего персонала воспринимают за жизненную философию и руководство к действию.

Столяров, несомненно, проделал большую работу. Написал любопытный памятник эпохе, который не может не вызывать ностальгических чувств у тех, кто хоть краешком застал то былинное время.

Но как разработчик, как автор, он не сделал ничего нового. И сам по себе является карикатурным образом админа 90-х, про которых писали юмористические рассказы в Fido. Попытка доказать всему честному люду, какой он великий инженер, через постройку велосипеда, развалившегося на первой кочке, — это типичный пример творчества тех лет. Рассказов про Винипуха и боды и записок Жены программиста.

Столяров эти рассказы воплотил в жизнь, начав писать CMS мечты и допустив постыднейшую ошибку в безопасности.

Вывод: Столяров — это классический, можно сказать, эталонный системный администратор из 90-х. Человек, который отказался развиваться, отринул курсы повышения квалификации и навсегда остался в сладком возрасте 20 лет в рамках того давно ушедшего социума, его стереотипов и правил.

Книги Столярова — это книги 90-х, хотя они написаны через четверть века, в конце 2010-х. Это памятник эпохи начала массовой компьютеризации в России. Это надо понимать при работе с ними. Читая работы Столярова, надо давать «поправку на ветер», и всё будет хорошо.

Несомненно, книги Столярова представляют интерес и пользу в начальном ознакомлении с основными принципами функционирования компьютера и компьютерных сетей, так как они описывают зарю технологий, когда оные не обросли множеством деталей. Книги четко структурированы, плавно вводят в тему, не перегружают деталями, затрагивая суть.

К минусам относится некомпетентность автора в востребованных на данный момент технологиях, его предвзятость и радикализм. Книги содержат устаревшие стереотипы, опровергнутые практикой.

Ответ на: комментарий от Xenius

Вот как ни страннно, но взгляд со стороны может выявить проблемы, которые никто раньше не замечал, например исторически сложившиеся, но неэффективные цепочки действий.

Может. Но это не тот случай, потому что контекст проблемы для тебя вообще не очевиден.

Даже если JS и CSS кэшируется, по-моему вполне очевидно, что первый сайт будет работать быстрее

Нет. Если тяжелый сайт закешировался, а затем начал выполнять мелкие запросы (веб-приложение), то он вполне может быть быстрее классического сайта, потому что работает с маленькими быстрыми запросами относительно лишь изменившегося контента, а не дергает сервер на каждый чих.

А то что ты предлагал сделать обычный форум в принципе неработоспособным без скриптов не имея на то никакой реальной необходимости, к сожалению, выдаёт не очень высокую квалификацию

Объясняю еще раз: проводится анализ целевой аудитории. Прикидывается нагрузка. Пишется сайт. Можно сделать прекрасный комбинированный вариант: при первой загрузке страницы рендерить всё целиком (чтобы у поисковиков работало), а новые посты докидывать скриптом в реальном времени, как и делать превьюшки. В первую очередь это делает удобно самому пользователю. В принципе, тут даже можно постить через форму, но вот делать превью через пост вообще смысла не имеет. А если твой форум на самом деле ближе к чату, то можно вообще забить на серверный рендеринг и сделать всё на скриптах.

При этом я не пытаюсь тебя оскорбить и может ты просто по глупости предложил такое, тогда возьму свои слова обратно.

Знаешь, мне нафиг не нужно твое снисходительное отношение. У тебя глупостью называется всё, что не вписывается в столяровщину.

По-твоему неуместные побочные эффекты не являются симптомом плохого стиля в программировании?

Я не это сказал. Я сказал, что побочные эффекты лишь малая часть проблемы, и если в общем виде учить грамотной архитектуре и проектированию, то нежелательные побочные эффекты уйдут сами собой. Но столяров в проектирование не умеет, что отлично видно по его коду и всем его темам на лоре, поэтому делает акцент на побочных эффектах, думая, что это как-то решит проблему.

Определение он использует вполне общепринятое

Нет, он выдирает и вымарывает фразы из контекста, и опускает всё, что ему не нравится. Типичный Выбегалло. Его там прямо ниже в это тыкают носом

ты где-то тут же спрашивал про тонкие моменты, на это Столяров у себя в гостевой недавно отвечал.

Я нигде не спрашивал ни про какие тонкие моменты, потому что в отличие от тебя и столярова, я знаю, что такое побочный эффект. Для этого мне не нужно читать полотнища его текста.

А то, что ты ходишь к нему в гостевую, как к себе домой, молишься на его определения и отрицаешь современные языки и подходы, выдает в тебе его сектанта.

Не обижайся, но я правда не знаю, о чем говорить с вашей братией, ваш мозг безвовзратно испорчен столяровщиной.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 3)
Ответ на: комментарий от liksys

пружинной линии ага

баблос Пелевин баблонавты

факт в падении уровня в части матана среди публики

т.е за счёт импорта в первый мир не занятого остальным миром когната можно забить на базу у себя - результат в короткую очень профитный - ибо хищьничество реально успешная эволюционная

qulinxao3 ★☆
()
Ответ на: комментарий от liksys

Нет. Если тяжелый сайт закешировался, а затем начал выполнять мелкие запросы (веб-приложение)

Я же в том посте писал, что веб-приложение и веб-сайт — это принципиально разные вещи. Вот ЛОР — веб-сайт. JS Linux — веб-приложение. Я вот видел где-то целую 3D-игру, которая запускается через браузер на весь экран — это тоже веб-приложение.

Мне казалось, что обсуждаются именно сайты. А веб-приложения по определению принципиально вообще никак невозможно построить без скриптов. Разве что переписать на нативный код и не извращаться с браузером, что в подавляющем большинстве случаев и стоило бы сделать.

а новые посты докидывать скриптом в реальном времени, как и делать превьюшки. В первую очередь это делает удобно самому пользователю.

А ты вот прямо так уверен, что динамическая подгрузка новых постов — это удобно? Например пользователь открыл страницу ради уже имеющихся постов, прокрутил до того места, которое хотел обдумать и ответить, потом переключился на другую вкладку и стал читать статью, а скрипт в фоне будет жрать процессорное время и подгружать какие-то там новые посты с мегабайтными картинками, которые пользователю вовсе и не нужны, пока он не ответил на предыдущий. А может у пользователя каждый мегабайт несколько рублей и скорость 100 килобит в секунду?

Ещё один принцип грамотного проектирования веб-сайта в том, что если скрипты и используются, они должны исполняться только если пользователь специально что-то делает, а если сайт в фоновой вкладке, то он должен спокойно там висеть, не тратя процессорное время.

делать превью через пост вообще смысла не имеет

Тогда придётся дублировать код, то есть трансляция из какого-нибудь bb-кода в HTML будет и в CGI-скрипте и в JS на странице. Или получится какое-то дикое извращение, которое без JS не работает, вроде отдачи всего форума в маркдауне и рендере у клиента.

А если твой форум на самом деле ближе к чату, то можно вообще забить на серверный рендеринг и сделать всё на скриптах.

Тогда не надо вообще его пихать в веб. Есть IRC и XMPP для чатов, в них чаты и следует организовывать.

если в общем виде учить грамотной архитектуре и проектированию, то нежелательные побочные эффекты уйдут сами собой

И как ты собираешься этому учить в общем виде? Написать в книге «проектируйте грамотно»? Ну так это будет бесполезно, все и так хотят проектировать грамотно, но не всегда могут. А если ты начнёшь писать принципы и частные примеры, какое проектирование грамотное, а какое нет, то побочные эффекты туда как раз и попадут в числе прочего.

поэтому делает акцент на побочных эффектах, думая, что это как-то решит проблему.

Само по себе не решит. В основном Столяров пишет, что избегать побочных эффектов нужно, чтобы минимизировать число ребусов в коде, то есть таких мест, которые делают что-то с первого взгляда непонятно и нужно разбираться.

Например, когда в заголовке цикла что-то делается кроме проверки условия.

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 1)
Ответ на: комментарий от Xenius

Мне казалось, что обсуждаются именно сайты.

Обсуждалось всё, потому что столяров отрицает веб-приложения тоже.

А ты вот прямо так уверен, что динамическая подгрузка новых постов — это удобно?

Да. Делаешь круглую стрелочку как на хабре, и сидишь довольный.

Тогда придётся дублировать код

Ничего не поделаешь, всё ради юзера.

Тогда не надо вообще его пихать в веб. Есть IRC и XMPP для чатов, в них чаты и следует организовывать.

Не следует. Вылезай из криокемары. Для массовой аудитории это уже умерло по причине неудобства. Все сидят по дискордам или матриксам. Даже разрабы армового арча, куда в IRC периодически хожу, сидят на сайте с вебмордой к этому самому IRC. И хожу я по вебморде, потому что мне ради одного чата нафиг не нужно целое приложение на компе.

И как ты собираешься этому учить в общем виде?

Этот вопрос возвращает нас к моему первому посту в этом треде: на практических задачах.

В основном Столяров пишет, что избегать побочных эффектов нужно, чтобы избегать ребусов в коде.

Америку открыл. А то мы без него не знали, что нежелательные побочные эффекты это плохо. И - сюрприз - для этого не нужны никакие особые подходы с паскалем.

liksys ★★★★
()
Ответ на: комментарий от Xenius

В основном Столяров пишет, что избегать побочных эффектов нужно, чтобы минимизировать число ребусов в коде, то есть таких мест, которые делают что-то с первого взгляда непонятно и нужно разбираться.

Забавно, что имея такую точку зрения, он наговнокодил столько const_cast’ов в своей талассе.

➜  find "thalassa-0.3.53" -type f -name '*.cpp' -exec grep 'const_cast' {} + | wc -l
30

Это так мудро объявлять метод константным, а потом const_cast’ом снимать константность, чтобы изменить поля класса. Это уже не побочный эффект, а эффектище. Вот конечный пользователь удивится, что константный метод внезапно что-то изменил.

Столяров отличный пример цитаты «кто умеет, тот делает, а кто не умеет, тот учит».

ox55ff ★★★★★
()
Ответ на: комментарий от ox55ff

Это наглядно демонстрирует, что понимание побочных эффектов по-столяровски не особенно помогает писать хороший код. Что толку от понимания, если нет инженерного подхода к решению задачи, с предварительным проектированием? Ах да, столяров же считает техническое образование страшным оскорблением: http://stolyarov.info/guestbook#cmt522

Повторюсь:

Забавно, что про важность и нужность математики в программировании громче всех кричит тот, у кого этой самой математикой и системным подходом в коде вообще и не пахнет.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от qulinxao3

wasm может и без js

Вообще-то это ещё хуже. Бинарный блоб который хз что делает скачивать и запускать, причём автоматически, без явного согласия пользователя — ну это вообще совсем нездоровая херня.

Xenius ★★★★★
()
Ответ на: комментарий от Xenius

sandbox

джентельмены верят наслово

intel а унутри(bios) c minix

Trusting Trust - воопрос кому больше|меньше доверять «равному» Васе-скрипткиди рыцарю али Всеблагому Левиафану

и тейк в том что в современном web - js уже не так тотален - htmx и wasm как два примера из многих

а если совсем упарыватся по обезжиренным шедеврам то

suckless.org - тока не видно что то там ни меня не Столярова :)

qulinxao3 ★☆
()
Ответ на: комментарий от qulinxao3

Мне вот интересно, ты предложения умеешь строить? А то, по твоим комментариям, у меня возникает ощущение, что текст написан древней LLM.

soomrack ★★★★★
()
Ответ на: комментарий от liksys

При дизграфии мысль формулируется довольно четко, но страдает грамотность письма. А тут просто какая-то мешанина слов косвенно относящихся к комментарию, на который он отвечает. Очень похоже на ранние нейронки.

soomrack ★★★★★
()
Ответ на: комментарий от liksys

Ну может, не знаю. В любом случае, я не со зла, просто если мысль в комментарии не сформулирована, то диалог сильно затрудняется.

soomrack ★★★★★
()
Ответ на: комментарий от qulinxao3

а зачем вы вообще что-то пишете на форум? Наверное, вы хотите передать какую-то информацию. Но вас никто не понимает. То есть пишите вы зря.

FishHook
()
Ответ на: комментарий от Xenius

А веб-приложения по определению принципиально вообще никак невозможно построить без скриптов.

Веб-сайт – это, грубо говоря, некоторое количество текстовых файлов с расширением html. Да, сайт может иметь функции веб-приложения. Чётких границ нету. Но если сайт категорически требует программирования, то это вэб-приложение. Если сайт может выдавать какой-то уникальный ответ на запрос юзера – это вэб-приложение. Например, какой-нибудь калькулятор можно сделать без всяких скриптов. И это будет 100% вэб-приложение.

rechnick ★★★
()
Ответ на: комментарий от liksys

Все сидят по дискордам или матриксам.

Все? Дружище, я вообще не знаю что такое дискорд и матрикс. И даже более того, вряд ли кто из моих знакомых пользуется этим. «Все сидят», ага. Не надо вульгарных экстраполяций. Мои знакомые все в телеге и пользуются телега-ботами.

Про опупенно удобный вэб, который удобен всем. Сегодня вечером в гостях зашёл разговор про одну покупку в широкоизвестном продуктовом магазине с доставкой. Захожу на сайт, пытаюсь выбрать адрес (город!) — и не могу. Подвисает. У добровольцев тоже не получилось. Попробовали на компе — та же картина. При этом сам сайт работает. Казалось бы, сколько городов в списке? 300-500? Это ничто. Но ведь выбор адреса весь обмазан js-фреймворками, в которых строк в тысячи раз больше, чем городов, в которых магазин. Так что Столяров в чём-то прав. Это, якобы «удобство», на самом деле нифига не удобство. У меня мать от меня ссылки уже боится открыть на телефоне. А вдруг это не я прислал и вдруг там по ссылке что-то злонамеренное? Офигенные удобства напридумывали. Теперь, чтобы бороться с удобствами процессоры замедляем.

https://i.postimg.cc/BZTZMGLN/rambler.png

rechnick ★★★
()
Ответ на: комментарий от soomrack

Мне вот интересно, ты предложения умеешь строить?

Рецензия на книги А. В. Столярова (комментарий)

джентельмены верят наслово

Подлежащее, сказуемое, обстоятельство. Обычный русский синтаксис. Подлежащее и сказуемое согласованы в полном соответствии с правилами русской грамматики.

vM ★★
()
Ответ на: комментарий от soomrack

Ты раньше меня на лоре зареган, а qulinxao не знаешь.

luke ★★★★★
()
Ответ на: комментарий от rechnick

Все? Дружище, я вообще не знаю что такое дискорд и матрикс. И даже более того, вряд ли кто из моих знакомых пользуется этим. «Все сидят», ага. Не надо вульгарных экстраполяций. Мои знакомые все в телеге и пользуются телега-ботами.

Это абсолютно неважно. Мой посыл в том, что все пользуются коммерческими мессенджерами, а не прекрасными и свободными IRC и Jabber.

Так что Столяров в чём-то прав. Это, якобы «удобство», на самом деле нифига не удобство.

Столяров не прав ни в чем. Ты черрипикаешь плохой пример и делаешь на его основе вывод о том, что веб плохой. С таким же успехом можно посмотреть на примеры десктопного говнософта и сказать, что нативные приложения - плохо.

liksys ★★★★
()
Ответ на: комментарий от liksys

Столяров не прав ни в чем. Ты черрипикаешь плохой пример и делаешь на его основе вывод о том, что веб плохой. С таким же успехом можно посмотреть на примеры десктопного говнософта и сказать, что нативные приложения - плохо.

Потому что таких сайтов большинство, особенно из тех которые делаются не одним дедом в Черногории. И более того, плохие практики это когда ты пишешь без фреймворков, хорошие это когда побольше наваливаешь пакетов в нпм.

Когда пытаются охарактеризовать какую то группу, берут все же наиболее распространенный признак. Нативные программы, особенно старые, и под Linux, себе такого не позволяют в большинстве, и работают очень даже хорошо.

MOPKOBKA ★★★★★
()
Ответ на: комментарий от MOPKOBKA

плохие практики это когда ты пишешь без фреймворков, хорошие это когда побольше наваливаешь пакетов в нпм

Лол.

берут все же наиболее распространенный признак

Ни у кого нет статистики, чтобы делать такой вывод. Но если на глазок, то скорее всего качество и сайтов, и веб-приложений, и нативного софта подчиняется нормальному распределению: просто работающих большинство, немного очень хорошо написанных, и немного шедевров дендрофекалостроения.

liksys ★★★★
()
Ответ на: комментарий от Xenius

Тогда не надо вообще его пихать в веб. Есть IRC и XMPP для чатов, в них чаты и следует организовывать.

Когда то мне надо было написать одному человеку, и у меня был только его жаббер контакт. Я попробовал два клиента, и в обоих не смог написать ему, потом в виртуалке поставил Miranda NG, и там с трудом, с регистрацией на каких то подозрительных сайтах, у меня все получилось.

IRC это вообще ужас, там какая то КОНШОЛЬ и я вообще не понимаю куда что жать, какие то комманды как на сервере в cs(1.6/:s), я оператор АЭС или просто хочу отправить текстовые или возможно медиа сообщения?

Я бы после установки мессенджера хотел видеть только два поля, логин и пароль, возможно адрес сервера, но лучше пусть само выбирает по умолчанию.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)
Ответ на: комментарий от liksys

Ни у кого нет статистики, чтобы делать такой вывод.

Ну я поэтому про хорошие практики начал. Сомнительно что куда то массово приходят клиенты с запросами на быстрые, оптимизированные сайты. Максимум это снизить время загрузки что бы яндекс не бухтел. Скорее всего ориентируются на конкурентов, смотрят на крупные компании, а там вот эти монструозные сайты сбера, яндекса и прочее.

Если взять типичного веб-девелопера, то я сомневаюсь что он вообще может что то сделать без связи фреймворков, а если и может, то захочет ли? Я не знаю какая там цепочка рассуждений. Я часто видел как говорили что в резюме отсутствие новых технологий смотрится плохо, возможно это реальный двигатель веб-прогресса, может что то еще.

Тоже самое наверное и в ПО, не зря под Windows в последнее время почти все программы, что не от энтузиастов, сильно стилизованны, обычно под веб, видно что кто то хотел красивые формочки, и явно для многих красивая формочка намного круче звучит чем низкое время отклика, или скорость загрузки.

А вот у программ под Linux совсем другие приоритеты: www.linux.org.ru/images/21462/original.png

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 3)
Ответ на: комментарий от MOPKOBKA

Тоже самое наверное и в ПО, не зря под Windows в последнее время почти все программы, что не от энтузиастов, сильно стилизованны, обычно под веб

Всю историю программы под винду были стилизованы. Даже сама винда была стилизована, достаточно вспомнить ссылки в эксплорере на мой компьютер и прочую муть.

liksys ★★★★
()
Ответ на: комментарий от liksys

Да, но там была стилизация на стандартных контролах, обычно довольно фиксированная, я скорее про то что сейчас часто интерфейс делают уже на Electron, QML, или их подобии, не разбирался что там именно, с очень нестандартными контролами и продвинутыми анимациями которые раньше не встречались, применяются другие инструменты для достижения новых требований к новому виду.

Например и раньше Steam был с нестандартным интерфейсом с их стилем, работал кстати быстро, но этого явно им не хватало, поэтому что в игры, что в Steam они встроили браузер, и теперь там много анимаций, всяких свечений. Но список игр у меня тормозит теперь под Linux.

Или панель драйверов, тогда и сейчас, стилизация есть везде, но уровень очень разный

https://www.legitreviews.com/images/reviews/944/4890_autotune.jpg

https://pcoutlet.com/wp-content/uploads/1817961-amd-software-adrenalin-screen...

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 4)
Ответ на: комментарий от MOPKOBKA

Это просто развитие той же самой идеи про цветастость из нулевых, наложившаяся на электрон. Использование тысяч анимаций не было самоцелью, скорее следствием того, что теперь UI можно делать в браузере.

liksys ★★★★
()
Ответ на: комментарий от MOPKOBKA

Просто сейчас у многих ПК дома нет, на них и ориентируются. Ну и «иликтрон» чорт бы его разорвал.

sabacs
()
Ответ на: комментарий от MOPKOBKA

IRC это вообще ужас, там какая то КОНШОЛЬ и я вообще не понимаю куда что жать, какие то комманды как на сервере в cs(1.6/:s), я оператор АЭС или просто хочу отправить текстовые или возможно медиа сообщения?

А ещё 20 лет назад у обычного пользователя оффтопика с пальцем прилипшим к мышке никаких вопросов в работе IRC не возникало.

anc ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)