Листая страницы Хабра, поймал себя на мысли, что я воспринимаю Хабр как новостную ленту в социальной сети. То есть как нечто, что прямого отношения лично ко мне не имеет и касается меня очень косвенным путем. Нечто полуразвлекательное-полупознавательное.
Ну, судите сами. Вот примерный список тем, которые превалируют на Хабре.
Что там новенького у Илона Петровича Маска.
Как с помощью Arduino, говна и палок сделать годный
фаллоимитаторрадиоприемник.Как я ушел с прошлой работы, и как мне было там плохо.
Как я нашел свою текущую работу, и какая она крутая.
Как живется специалисту X в стране Y.
Какой путь нужно проделать фельдшеру из Ангарска, чтобы стать тестировщиком мобильных приложений в Ирландии.
Обсуждение новомодной платформы для веб-разработки, которая через 3 года станет старомодной.
Промываем косточки крупным компаниям.
Исторические экскурсы в IT/технологии/медицину.
Реклама компаний.
Мнения обо всем отвлеченном на свете.
И т. д.
Все эти темы и все статьи – неплохие, интересные. Но я хотел бы другого.
Я давно программирую на С++/qt. Думаю, что могу создать с нуля любой программный продукт (desktop) . Могу набирать команды, могу выстраивать отношения с заказчиками и т.д. Периодически приходится запускать (создавать) новые направления/программные продукты. Однако время, затрачиваемое мной и командой на каждый новый продукт, остается примерно постоянным. Вернее, не совсем так. Время суммарной работы оказывается в прямой пропорциональной зависимости от сложности продукта (объема кодовой базы). То есть постоянной величиной оказывается производительность работ, или эффективность труда. На всякий случай оговорюсь, что речь не идет о новичках, в команде только опытные толковые сотрудники.
Так вот, эту самую производительность труда очень хотелось бы увеличить. Как и в чем мне может помочь Хабр? Или я зря надеюсь?
Мне хотелось бы поднимать свой профессиональный уровень серьезными профессиональными статьями по проектированию/созданию/ведению больших продуктов. Статьями, которые по легкости восприятия были бы такого же классного уровня, как и сейчас большинство статей на Хабре. Но статьями, которые по глубине и полезности были бы как классические книги Скотта Майерса, банды четырех, Алана Купера, Роберта Мартина и др. Знаете, читая эти книги, я прибавлял каждый раз в квалификации. К сожалению, читая статьи на Хабре, я этого не чувствую. Даже более того: не могу припомнить случая, когда я хотел изучить какой-то новый для меня (и обычно нетривиальный) нюанс и находил бы его на Хабре. Я находил его где угодно, но только не на Хабре. Или вообще не находил.
Посему я очень жду, буду приветствовать и по мере сил способствовать появлению на Хабре статей по следующим направлениям.
Новые шаблоны проектирования (С++)
Да, я знаю, что шаблоны – не догма и не панацея, и всё всегда можно придумать и самому. Но я также знаю, что это – проверенная годами экономия времени архитекторов и программистов. Это кругозор, который (при его наличии) позволяет делать сложную работу быстрее, а то и вообще моментально. У меня сложилось ощущение, что в мире С++ развитие шаблонов практически остановилось на известной книге банды четырех. Там описано 23 шаблона, и еще примерно столько же можно накопать в интернете. Я хочу больше! В моей практике были случаи, когда приходилось создавать шаблоны, разительно непохожие на известные. И приходилось тратить довольно много времени на приведение их к товарному использованию, хотя бы даже на продумывание такой терминологии, которая бы естественно бы воспринималась коллегами. Уверен, что если бы мы имели возможность в нужный момент найти и прочитать описание свежего шаблончика, наша работа местами была бы намного быстрее.
Думаю, на Хабре замечательно бы смотрелись статьи в классическом стиле банды четырех: описание и идеология шаблона, пример реальной задачи, код С++, границы применения.
Кстати, по шаблонам есть фундаментальный труд POSA: 5-томник на 2000+ страниц, перевода на русский язык до сих пор нет. Чем не непаханное поле?
Шаблоны ведения проектов в Git
Под этим можно подразумевать стратегии ветвления, схемы тестирования и создания релизов на ветках Git. Думаю, для многих было бы полезно появление серии статей в таком духе:
Я веду маленький проект на 20 тысяч строк кода, в нем задействовано 5 человек, с системой контроля версий мы работаем вот так (и описать конкретно, вплоть до команд командной строки).
Я веду неплохой проект на 100 тысяч строк кода, в нем задействовано 10 человек, и мы работаем вот так: схемы, команды git.
Мы с тремя командами по 10 человек развиваем проект на 1 миллион строк кода, продаем продукт разным клиентам в разных конфигурациях, и всё свое хозяйство мы покрыли регрессионным тестированием. И для этого мы делаем вот это: схемы, команды git.
У нас работает 200 человек, и у нас 10 миллионов строк кода в монорепе на 5 продуктов, и каждый продукт ещё поставляется в трех разных версиях. Мы опытным путем пришли, что только так: схемы, команды git.
А у нас очень много кода и много микросервисов, каждый в своем репозитории, впрочем, есть и подрепозитории (подмодули). Часть кода покрыта тестами, часть нет. Раньше мы работали вот так, а теперь перешли на вот это (схемы, команды), но по эффективности труда одинаково приемлемо.
GUI
Дизайн GUI, новые подходы, примеры удачных и неудачных виджетов, примеры плохих и хороших интерфейсов/решений. Эта область очень динамично развивается в плане того, что мы видим на экранах своих смартфонов и мониторов (причем на смартфонах более динамично, чем на мониторах). Однако в плане научного описания, осмысления и систематизации всё как-то вяло. То есть решений полно, но ими никто не делится. А если и делится, то как-то не очень доходит до конкретных исполнителей, и те пишут с нуля. Думаю, ситуация бы улучшилась, если бы появилась серия статей в таком духе:
Камрады, я внедрил к себе гамбургер-меню на 500 строк (qt) вот отсюда (ссылка). Вот, смотрите: скриншот, gif-анимация. Работает чётко! Лицензия – LGPL. Короче, пользуйтесь все.
Я создал свой виджет ввода паролей. Он круче, чем другие по таким-то причинам. Делюсь! Ссылка на репозиторий, скриншоты.
Я смог объединить панели меню и тулбаров в одной панели. Получился принципиально новый виджет, похожий одновременно и на меню, и на тулбары. Область применения – вот такая, описываю. Скриншоты, описание даю, а вот код – нет!
Я потратил 3 года на то, чтобы изучить все подходы к созданию справочных систем для больших приложений, и хочу об этом детально рассказать, с кучей примеров.
Раньше у нас был такой интерфейс, и такие задачи. А потом добавилась еще одна, и мы в корне переделали интерфейс. Рассказываю, почему прошлый интерфейс был оптимален, а текущий – супероптимален.
Я создал свою библиотеку виджетов, да еще с библиотекой стилей. Ссылка. Область применения – такая-то. Могу продать хорошим людям (или подарить).
Я супермегадизайнер, и на примере 30 известных приложений за последний год объясню вам, что попало в тренд, что не попало, а что создает будущий тренд.
Успешный опыт решения важных и нетривиальных задач из самой близкой действительности
Знаете, меня не сильно цепляют новости, о том, какие планы у Джеффа Безоса на космос или как Boston Dynamics обучает своего пса. Это не увеличивает мою зарплату. Я хочу чего-то более близкого и понятного мне, но самое главное – применимого в моей работе.
К примеру, я делаю что-то похожее на графический редактор, и мне хотелось бы иметь инструментарий быстрого выделения человека по контуру одним щелчком. Или автоматического определения границ стран на простой разноцветной растровой карте. Или быстрого (до микросекунды) и легковесного (до пары мегабайт конфигов) определения страны по геокоординатам точки.
Сложные ли это задачи? Непростые, но решаемые. И некоторые из них решены многократно самыми разными производителями софта.
Давайте еще пример. Я запускаю приложение X и параллельно еще парочку для полного занятия вычислительных ресурсов (например, конвертор видео). И вот в приложении X вижу слайд-анимацию, который замечательно себя ведет (нисколько не тормозит) при том, что соседние приложения на 100% заняли мой процессор. Это неплохой результат для X, и, черт возьми, я хочу знать, как они этого добились.
Да, я знаю, что есть такие понятия, как коммерческие секреты, патенты и всякое такое. Но ведь несложно же из груды решенных задач вытащить что-то такое, что давно уже не представляет коммерческой ценности и поделиться этим с программистским сообществом. Подозреваю, что в команде разработки, к примеру, Adobe Photoshop найдется немалая кипа примеров изящно решенных нетривиальных задач, которые незаслуженно скрыты от мира. И если бы их открыть в виде конкретных формул, диаграмм (а в идеале исходного кода) и разместить в удобочитаемом виде на Хабре, это было бы очень многим полезно.
Вместо послесловия
Изложенные мной хотелки уже присутствуют в некотором небольшом количестве на Хабре, а помимо этого, подобную информацию по крупинкам можно собирать на конференциях, искать в книгах и некоторых научных журналах. Но трудозатраты слишком велики! Бывает, читаешь книгу в 500 страниц, чтобы найти хоть намек на решение, а его там не оказывается. Или, того хуже, оказывается, но такой, что лучше бы его не было… Статьи в научных журналах часто оказываются написанными не с целью поделиться со всем миром своими достижениями, а просто формально отчитаться за очередной грант. Да и вообще, кажется, что печатные научные журналы по программированию эволюционно проигрывают интернет-платформам.
В общем, хочется надеяться, что Хабр сможет подобрать это непростое знамя – нести серьезную, неразвлекательную науку в профессиональные сообщества, но делать это легко и изящно. И создавать условия для современных Скоттов Майерсов, готовых писать статьи для русскоязычной аудитории и потом компилировать их них свои бестселлеры. Надеюсь, жду, верю… И всем не болеть!
Subrisk
Так это... Берите и пишите. Что сами-то с негодной статьи начали? Ну а по делу - кажется, вы не весь Хабр прочитали :-)
vilgeforce
… но бОльшую его часть. Какая мотивация писать хорошие материалы при том, что откровенно плохие получают положительную оценку?
frog
Осознание, что вашу статью прочтёт целевая аудитория (которая может составлять менее 1% от всей аудитории Хабра). Не стоит искать мотивацию в большом количестве плюсов на коммерческом проекте, который позиционируется как «про всё сразу».
Если смотреть шире — какая вообще мотивация в жизни делать что-то хорошо, если большинство делает плохо? :)
vilgeforce
Поскольку ЦА всего 1% — логично писать на более специализированных ресурсах, ага
frog
Зависит от темы конечно, но если брать достаточно ощутимый промежуток времени, то на специализированном ресурсе статью прочтёт меньше заинтересованных в ней людей, чем на проекте типа Хабра. Просто за счёт того, что Хабр в целом привлекает больше всякого народа, чем специализированный ресурс. И среди этого народа неизбежно будут попадаться те, кто заинтересован, но на специализированном ресурсе не окажется. Пока что это так. Основная проблема в том, что количество проплаченных статей тут стало очень большим и это отпугивает всех людей независимо от интересов — стало очень много мусора, который появляется не случайно, а целенаправленно.
Andy_Big
Воистину.
Goron_Dekar
нет. 1% это очень много.
И, да, не подскажете ещё хотябы парочку рецензируемых (карма/коментарии это вид рецензии) журналов, где можно читать статьи про новые паттерны в плюсах. Я не новичок, можно даже и на английском.
vilgeforce
Я не по плюсам, у меня другие области :-)
COKPOWEHEU
А какая мотивация делиться знанием вообще?
Лично для меня мотиваций три:
— Просто помощь если вдруг кого другого заинтересует та же тема. Особенно если этим «другим» окажусь я сам через пару лет, когда забуду как решал данную задачу.
— Изучение через обучение. Когда пытаешься сформулировать текст для статьи, частенько находятся узкие места, на которые в повседневной жизни просто не обратил бы внимания.
— Подсказки от «специалистов-по-всему». Есть шанс, что в комментариях отыщется человек, тоже занимавшейся этой проблемой и подкинет интересную мысль.
Ну а то, что всякий шлак занимает высокий рейтинг, так кнопочки «плюс-минус» есть, и где их использовать, как не в статьях про очередные менеджеропроблемы.
vsantonov
Как раз недавно писал статью зачем мы делимся знаниями и как это может нам помочь. habr.com/ru/post/550098
selivanov_pavel
Ну а пост с сиськами и котиками на пикабу наберёт больше плюсов, чем самая крутая статья на хабре. Людей, способных оценить сиськи, котиков и достижения Илона Маска, гораздо больше, чем людей, способных оценить статью по шаблонам проектирования.
AlexisVaBel
А если объединить хорошую техническую статью с сиськами? Интересно, что выйдет
xsevenbeta
Выйдет хорошая техническая статья с сиськами :)
Это в общем-то давно известно, что самый примитивный контент получает гораздо больше одобрения. Творец может потакать запросам публики и публика с каждой итерацией будет становиться всё примитивнее. Либо творец осознает, что его контент влияет на людей и изменяет их. И делает что-то сложное, что может поменять людей к лучшему — но получает за это меньше лайков и признания.
Если лайки заменяются на монетизацию и реальные деньги за просмотры — мы получаем тот ютуб, что имеем.
vin2809
Вот и получается, что хабр все ближе к обычным соц.сетям...
Dolios
К чёрту мотивацию, вам нужна дисциплина