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

    • Перевод

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


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


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


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


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

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

    Читать дальше →
  • PHP: неправильный путь

    • Перевод
    image

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

    Похоже, все эти люди без устали стараются заставить каждого программировать так, как они считают нужным. Эта статья написана, чтобы поделиться прагматичным взглядом на PHP-программирование. Взглядом, продиктованным опытом и практическими последствиями, а не популярными тенденциями, теориями или академическими догмами. Материалы, представленные на сайте PHP — The Wrong Way, будут обновляться по мере появления новой информации. Приглашаем всех поучаствовать в этом.
    Читать дальше →
  • Все программисты думают что C++ поддерживает ООП, кроме автора ООП

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

      image

      Самое смешное в этих статьях то, что многие под ООП понимают некий принцип когда-то заложенный в C++. И редко кто реально понимает что такое ООП. Вдруг мне показалось что 99% программистов вообще плохо понимают что такое ООП. Но может быть я ошибаюсь? Давайте посмотрим…
      Читать дальше →
    • Модуль управления бизнесом по показателям (KPI, ССП) на базе WordPress

        Мы долго искали решение для создания удобного портала с отчетами о бизнесе. С возможностью их визуализации и аналитики (KPI, ССП). Но все как то не то.
        Решили написать на базе WordPress модуль. Написали. Сами используем. Выложили в открытый доступ.
        Под катом описание основных возможностей и ссылка на репозитарий…
        Читать дальше →
        • +6
        • 10,5k
        • 3
      • 7П — идеальная бизнес-модель организации

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

          Разбирая этот предмет, за десять лет пришел к выводу, что идеальная модель состоит из 7П:
          Читать дальше →
        • Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №118 (28 июля — 3 августа 2014)

            Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


            Читать дальше →
            • +39
            • 34,9k
            • 1
          • Детальное описание действий IT-отдела — базовый набор документации

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

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

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

              Разберемся в терминах

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

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

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

              Термин адаптивный кейс-менеджмент (Adaptive Case Management, ACM) был впервые предложен в 2010 году Workflow Management Coalition. АСМ – это технология, позволяющая гибко управлять процессом решения поставленной задачи, в зависимости от развития ситуации.
              Читать дальше →
              • +3
              • 88,7k
              • 7
            • Опубликованы исходные коды платформы онлайн-обучения edX



                1 июня был открыт доступ к репозиториям с исходными кодами платформы онлайн-обучения edX, основанной Массачусетским технологическим институтом и Гарвардским университетом. Теперь можно не только изучать огромное количество курсов на таких сайтах, как edx.org или coursera.org, но и создать свой собственный портал для дистанционного образования. Похоже, у Moodle появился конкурент.
                Читать дальше →
                • +41
                • 21,6k
                • 8
              • HabraPack возвращается

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

                  image

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

                  .PSD файл прилагается.
                • Ежедневная работа с Git

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

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


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

                  Далее очень много букв случайным образом превратились в пост.
                • N+1 полезная книга для бизнеса: часть 3



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

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


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

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


                    Отличная книга про дебаг производственных процессов. Одна из основных вещей – то, что все серьёзные проблемы возникают из-за сочетания некритичных багов. Есть примеры из американской ядерной программы, NASA и т.п. Я предлагаю прямо сейчас пойти и прочитать описание железнодорожного крушения на Каменской: один не отчитался, второй не проверил тормоза, третий зажал тангенту, четвёртый сорвал стоп-кран. Результат — катастрофа.
                    Читать дальше →
                  • Графовая база данных Neo4j в PHP

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

                    Что такое Neo4j?


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

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


                    Уже более года я не использовал в своих проектах SQL, с того времени, как попробовал документо-ориентированную СУБД "MongoDB". После MySQL моей радости не было предела, как все просто и удобно можно делать в MongoDB. За год, в нашей студии создания сайтов, переписали тройку CMS, использующих основные фишки Mongo c её документами, и с десяток сайтов работающих на их основе. Всё было хорошо, и я уже начал забывать, что такое писать запросы в полсотни строк на каждое действие с БД и все бы ничего пока на мою голову не свалился проект с кучей отношений, которые ну никак не укладывались в документы. Возвращаться к SQL очень не хотелось, и пару дней я потратил чисто на поиск NoSQL решения, позволяющего делать гибкие связи — на графовые СУБД. И по ряду причин мой выбор остановился на Neo4j, одна из главных причин — это то, что мой движок был написан на PHP, а для неё был написан хороший драйвер "Neo4jPHP", который охватывает почти 100% REST-интерфейса, предоставляющегося сервером Noe4j.
                    Читать дальше →
                  • Опыт управления бизнес-процессами по новому, или как ACM заменяет BPM, CRM, ECM, SCRUM, ITSM — одним махом

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

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

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

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

                    Есть ли ИТ, которая может бросить вызов бумажке? Неужели за 2000 лет не нашлось смельчака? Ответ под катом…
                    Читать дальше →