(Оффтоп)
В Nginx отличный код!
Это не есть типичный OpenSource проект. К тому же, это отличный продукт. OpenSource проекты делают достаточное большое количество энтузиастов, которые учились программированию сами. Отсюда и код индусский. Видимо, в этом проблема.
Цитата:
В ядре Linux не разбираюсь, но выглядит любопытно.
Цитата:
Видели мы его в открытых проектах, плевались. Например, когда они открывали свой драйвер Hyper-V.
Про Hyper-V yе знаю. Не видел. Но вряд ли низкоуравневый код когда то бывает образцовым.
Что касается Линукса - если вы про код самого ядра, то он местами выглядит довольно страшно. Это пример из той же оперы.
"Албанской нотации"? (Или венгерской, уже запамятовал...)
Ни в коем случае. Посмотрите примеры .Net проектов от Microsoft. Поучиться там можно не только стилю кода, но и архитектурным моментам, которые непосредственно с этим связаны. Думаю, что я не окажусь не прав, если скажу, что их код практически оптимален в целом: он понятен, не усложнен, он разумно и уместно использует возможности языка , там где это помогает и использует кастомизацию - там где она ускоряет процесс, он достаточно хорошо расширяем и не имеет проблем производительности.
-- Сб фев 16, 2013 10:43:49 --Я где-то предлагал набор рекомендаций как стать профессиональным программистом? Я вообще категорически не рекомендую им становиться, если Вас интересует моё мнение в явной форме : )
А вот я как раз рекомендую. :) Объясню свою мысль (ваша мне прекрасно понятна и я догадываюсь в чем ее обоснование, ваш сайт я читал) : здесь все зависит от сегмента.
Есть СПО, которое создано для научных вычислений, или для самих же программистов. А есть general purpose software для обычных пользователей или служащих организаций (enterprise software). Его основная задача максимально оптимизировать бизнес-процессы, количество нетривиальных алгоритмических задач в таком софте невелико, с некоторыми исключениями.
Соответственно, в такой разработке критерии качества несколько другие: более высокие требования к удобству интерфейса, расширяемости, иногда - надежности. Более высокие требования и к качеству кода. Кроме того, сам процесс устроен иначе: в "наукоемком" ПО разработчики получают на вход как правило четко сформулированную задачу. В general purpose же секторе, это далеко не так. Достаточно большое время тратиться на формализацию. Именно поэтому в частности, в компаниях, которые , предположим, делают финансовое ПО есть разграничение на аналитиков и программистов.
Но в целом, какие бы программы вы не делали, все вышеперечисленные умения важны: и интерфейсы строить, и задачу формализовывать и писать оптимальный код. Поэтому "не становиться профессиональным (промышленным) программистом" я не могу считать хорошей рекомендацией.
ЗЫ: я сам участвовал как в академических проектах, так и в промышленных.