Pull to refresh
13
0

Пользователь

Send message

50 цитат о программировании всех времён

Reading time 6 min
Views 159K
Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

50. Программирование сегодня — это гонка разработчиков программ, стремящихся писать программы больше и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает.
— Rick Cook

49. Lisp — это не язык, а строительный материал.
— Alan Kay

48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
— Edward V Berard
Читать дальше →
Total votes 344: ↑336 and ↓8 +328
Comments 136

Почему опытные разработчики пишут тупой код и как распознать новичка за километр

Reading time 3 min
Views 86K
Предлагаю читателям «Хабрахабра» перевод публикации «Why Senior Devs Write Dumb Code and How to Spot a Junior From A Mile Away» за авторством Scott Shipp.


Одна из моих любимых цитат на все времена — Брайана Гетца (Brian Goetz), умнейшего чувака из мира Java, одного из авторов «Java Concurrency in Practice», кроме всего прочего. Цитата взята из интервью, опубликованного на сайте Oracle под заголовком «Пишите тупой код» («Write Dumb Code»). Гетца спросили, как писать хорошо работающий код.
Вот что он ответил
Total votes 165: ↑147 and ↓18 +129
Comments 407

Что не так с популярными статьями, рассказывающими что foo быстрее чем bar?

Reading time 6 min
Views 10K

Примечание переводчика: я тоже думал, что время статей "Что быстрее — двойные или одинарные кавычки?" прошло еще 10 лет назад. Но вот подобная статья ("What performance tricks actually work") недавно собрала на Реддите относительно большой рейтинг и даже попала в PHP дайджест на Хабре. Соответственно, я решил перевести статью с критическим разбором этих и подобных им "тестов".


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


Главная проблема


Такие тесты являются неверными по многим причинам, начиная с постановки вопроса и заканчивая ошибками реализации. Но что важнее всего — подобные тесты бессмысленны и в то же время вредны.


  • Бессмысленны потому, что никакой практической ценности не несут. Ни один реальный проект еще никогда не был ускорен с использованием методов, приводимых в таких статьях. Просто потому, что не различия в синтаксисе имеют значение для производительности, а обработка данных.
  • Вредны потому, что они приводят к появлению дичайших суеверий и — что еще хуже — побуждают ничего не подозревающих читателей писать плохой код, думая при этом что "оптимизируют" его.

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

Читать дальше →
Total votes 50: ↑44 and ↓6 +38
Comments 72

PHP: неправильный путь

Reading time 18 min
Views 70K
image

В мире PHP-программирования существует набор трендов. Некоторые люди активно продвигают их (в книгах и на сайтах) как «современный PHP», а другие подходы выставляют как устаревшие, глупые или просто неверные.

Похоже, все эти люди без устали стараются заставить каждого программировать так, как они считают нужным. Эта статья написана, чтобы поделиться прагматичным взглядом на PHP-программирование. Взглядом, продиктованным опытом и практическими последствиями, а не популярными тенденциями, теориями или академическими догмами. Материалы, представленные на сайте PHP — The Wrong Way, будут обновляться по мере появления новой информации. Приглашаем всех поучаствовать в этом.
Читать дальше →
Total votes 104: ↑83 and ↓21 +62
Comments 368

Все программисты думают что C++ поддерживает ООП, кроме автора ООП

Reading time 5 min
Views 37K
В последнее время заметил статьи на тему «ООП крут vs процедурное программирование плохо» и «ООП плохо vs процедурное программирование круто» и «ООП и процедурное плохо vs будущее за XYZ принципами», где XYZ какое-то модно новое понятие.

image

Самое смешное в этих статьях то, что многие под ООП понимают некий принцип когда-то заложенный в C++. И редко кто реально понимает что такое ООП. Вдруг мне показалось что 99% программистов вообще плохо понимают что такое ООП. Но может быть я ошибаюсь? Давайте посмотрим…
Читать дальше →
Total votes 55: ↑24 and ↓31 -7
Comments 310

Модуль управления бизнесом по показателям (KPI, ССП) на базе WordPress

Reading time 2 min
Views 11K
Мы долго искали решение для создания удобного портала с отчетами о бизнесе. С возможностью их визуализации и аналитики (KPI, ССП). Но все как то не то.
Решили написать на базе WordPress модуль. Написали. Сами используем. Выложили в открытый доступ.
Под катом описание основных возможностей и ссылка на репозитарий…
Читать дальше →
Total votes 10: ↑8 and ↓2 +6
Comments 3

7П — идеальная бизнес-модель организации

Reading time 6 min
Views 14K
Если Вам нужно стабилизировать организацию, то важно описать ее деятельность, чтобы затем обучать и мотивировать сотрудников. Чтобы каждый понимал что и зачем нужно делать и за что отвечать.

Разбирая этот предмет, за десять лет пришел к выводу, что идеальная модель состоит из 7П:
Читать дальше →
Total votes 10: ↑8 and ↓2 +6
Comments 5

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №118 (28 июля — 3 августа 2014)

Reading time 5 min
Views 35K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


Читать дальше →
Total votes 41: ↑40 and ↓1 +39
Comments 1

Детальное описание действий IT-отдела — базовый набор документации

Reading time 7 min
Views 147K
Во многих западных странах IT-аутсорсинг регулируется либо отраслевыми стандартами, либо вообще на госуровне. У нас такого нет. Поэтому за несколько лет был собран документ, который детально определяет термины в IT-аутсорсинге и расписывает, что в какой тип работ конкретно входит. С его помощью мы документируем работы, а потом чётко и прозрачно считаем, что сколько стоит.

Вот глоссарий терминов, а вот каталог IT-услуг. Эти документы можно свободно скачивать и использовать. Особенно рекомендую руководителям IT-подразделений.

Ниже я расскажу, зачем мы всё это сделали, и для каких случаев документ будет очень полезен.
Читать дальше →
Total votes 62: ↑58 and ↓4 +54
Comments 12

Что такое кейс и зачем им нужно управлять

Reading time 5 min
Views 140K
Разберемся в терминах

Слово кейс (от англ. case) означает случай, дело. В деловой лексике к понятию «кейс» принято относить описание конкретной ситуации и способа ее разрешения, включая описание исходной ситуации, решения и пути выбранные участниками, их действия, материалы, относящиеся к делу, ну и конечно, полученный результат. На кейсах давно тренируют студентов бизнес-школ, разбирая их и моделируя разные сценарии развития ситуаций.

Задачи, возникающие в нашей жизни, могут быть условно разделены на определенные (сразу точно извесно, что они из себя представляют и что с ними делать) и неопределенные (на старте не достаточно информации, чтобы точно определить как их решать). Определенные задачи часто описаны должностными инструкциями, к ним есть карты процессов и регламенты. Это – часто повторяющиеся ситуации, для которых шаблон поведения описан и он легко может быть запрограммирован в информационной системе. Но как только ситуация не вписывается в шаблон – возникает неопределенная ситуация или кейс. Необходимо анализировать, принимать решения, делать выбор, конструировать новый шаблон. Вот этот процесс и называется управлением кейсами.

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

Термин адаптивный кейс-менеджмент (Adaptive Case Management, ACM) был впервые предложен в 2010 году Workflow Management Coalition. АСМ – это технология, позволяющая гибко управлять процессом решения поставленной задачи, в зависимости от развития ситуации.
Читать дальше →
Total votes 5: ↑4 and ↓1 +3
Comments 7

Опубликованы исходные коды платформы онлайн-обучения edX

Reading time 1 min
Views 24K


1 июня был открыт доступ к репозиториям с исходными кодами платформы онлайн-обучения edX, основанной Массачусетским технологическим институтом и Гарвардским университетом. Теперь можно не только изучать огромное количество курсов на таких сайтах, как edx.org или coursera.org, но и создать свой собственный портал для дистанционного образования. Похоже, у Moodle появился конкурент.
Читать дальше →
Total votes 43: ↑42 and ↓1 +41
Comments 8

HabraPack возвращается

Reading time 1 min
Views 64K
Я надеюсь тут остались люди, которые помнят старый и ужасный на вид HabraPack? В последнее время я начал натыкаться на свои жуткие иконки на большом количестве сайтов и даже в терминалах оплаты местной компании, в разделе «Социальная сеть». Также, совсем недавно, знакомые попросили чуть обновить иконки, что я собственно и сделал.

image

Я буду обновлять иконки раз в день, большим количеством иконок. А пока можете СКАЧАТЬ и спокойно пользоваться, если вдруг найдутся люди, кому понравится.

.PSD файл прилагается.
Total votes 164: ↑158 and ↓6 +152
Comments 54

Ежедневная работа с Git

Reading time 40 min
Views 874K
Я совсем не долго изучаю и использую git практически везде, где только можно. Однако, за это время я успел многому научиться и хочу поделиться своим опытом с сообществом.

Я постараюсь донести основные идеи, показать как эта VCS помогает разрабатывать проект. Надеюсь, что после прочтения вы сможете ответить на вопросы:
  • можно ли git «подстроить» под тот процесс разработки, который мне нужен?
  • будет ли менеджер и заказчик удовлетворён этим процессом?
  • будет ли легко работать разработчикам?
  • смогут ли новички быстро включиться в процесс?
  • можно ли процесс относительно легко и быстро изменить?


Конечно, я попытаюсь рассказать обо всём по-порядку, начиная с основ. Поэтому, эта статья будет крайне полезна тем, кто только начинает или хочет разобраться с git. Более опытные читатели, возможно, найдут для себя что-то новое, укажут на ошибки или поделятся советом.

Далее очень много букв случайным образом превратились в пост.
Total votes 200: ↑194 and ↓6 +188
Comments 44

N+1 полезная книга для бизнеса: часть 3

Reading time 6 min
Views 96K


Привет!
Прошлые два обзора полезных книг за 2010 и 2011 год собрали просто адовое количество закладок, поэтому я продолжу. Прошел ещё год, ещё около 250 прочитанных книг – и вот самые интересные под катом.

Кто сказал, что слоны не умеют танцевать? Возрождение корпорации IBM: взгляд изнутри (Герстнер Луис)


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

Догнать зайца (Стивен Спир)


Отличная книга про дебаг производственных процессов. Одна из основных вещей – то, что все серьёзные проблемы возникают из-за сочетания некритичных багов. Есть примеры из американской ядерной программы, NASA и т.п. Я предлагаю прямо сейчас пойти и прочитать описание железнодорожного крушения на Каменской: один не отчитался, второй не проверил тормоза, третий зажал тангенту, четвёртый сорвал стоп-кран. Результат — катастрофа.
Читать дальше →
Total votes 66: ↑60 and ↓6 +54
Comments 43

Графовая база данных Neo4j в PHP

Reading time 5 min
Views 57K
В последнее время я все чаще слышу о NoSQL и о графовых базах данных в частности. Но воспользовавшись хабропоиском с удивлением обнаружил, что статей на эту тему не так и много, а по запросу «Neo4j», так вообще 4 результата, где косвенно упоминается это название в тексте статей.

Что такое Neo4j?


image
Neo4j — это высокопроизводительная, NoSQL база данных основанная на принципе графов. В ней нет такого понятия как таблицы со строго заданными полями, она оперирует гибкой структурой в виде нод и связей между ними.

Как я докатился до этого?


Уже более года я не использовал в своих проектах SQL, с того времени, как попробовал документо-ориентированную СУБД "MongoDB". После MySQL моей радости не было предела, как все просто и удобно можно делать в MongoDB. За год, в нашей студии создания сайтов, переписали тройку CMS, использующих основные фишки Mongo c её документами, и с десяток сайтов работающих на их основе. Всё было хорошо, и я уже начал забывать, что такое писать запросы в полсотни строк на каждое действие с БД и все бы ничего пока на мою голову не свалился проект с кучей отношений, которые ну никак не укладывались в документы. Возвращаться к SQL очень не хотелось, и пару дней я потратил чисто на поиск NoSQL решения, позволяющего делать гибкие связи — на графовые СУБД. И по ряду причин мой выбор остановился на Neo4j, одна из главных причин — это то, что мой движок был написан на PHP, а для неё был написан хороший драйвер "Neo4jPHP", который охватывает почти 100% REST-интерфейса, предоставляющегося сервером Noe4j.
Читать дальше →
Total votes 64: ↑63 and ↓1 +62
Comments 45

Опыт управления бизнес-процессами по новому, или как ACM заменяет BPM, CRM, ECM, SCRUM, ITSM — одним махом

Reading time 9 min
Views 13K
Вы верите в бога «ИТ-систему под все бизнес-процессы»? — так начинается заражение идеей. Предупреждаю, в этой статьей будут факты, которые могут повредить вашу картину мира… безвозвратно.
Наверное многие скажут, что — нет! Нет такой! ИТ-ландшафт организации будет всегда состоять из зоопарка различных ИТ-систем!
И я с этим соглашусь.
Но знаете ли вы, что примерно 2000 лет назад — такая ИТ уже была изобретена… Имя ей — бумага.
Бумага — основной, удобный и самый популярный носитель информации за всю историю человечества.

Это ИТ! Кто не верит? Открываем словарь русского языка и читаем:
— технология = наука о технике
— техника = все то что изобретено человеком и не существовало до него в природе
— информационная техника = все то что создано человеком для работы с информацией
— ИТ = наука создания и развития информационных техник.

Бумага существовала в природе? Нет! Значит — техника. Она создана для работы с информацией? Да — текстовой и визуальной. Она появилась в результате научных изысканий? Да! От сюда: бумага = ИТ.

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

Есть ли ИТ, которая может бросить вызов бумажке? Неужели за 2000 лет не нашлось смельчака? Ответ под катом…
Читать дальше →
Total votes 9: ↑3 and ↓6 -3
Comments 63

Information

Rating
Does not participate
Registered
Activity