• Двойная бюстгалтерия* глазами программиста

    • Tutorial


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

    Статья не академическая, а отражает сугубо мой упрощенный взгляд, и для тех кто уже осилил академические статьи — будет неинтересной. Тех же кому интересно понять такой простой и мощный инструмент как «двойная запись» — прошу под кат.
    Читать дальше →
  • Большое Ухо или «Почему глухой должен быть немым?»

    image
    Будущее начинается с нас самих. Не с кикстартера или биткоинов. Не с 3Д-принтеров или башен Тесла, а с нас. Те кто говорят «невозможно» не должны мешать тем кто это делает.
    Итак суть — предлагаю обсудить (и осуществить) возможность слабослышащим увидеть звук настолько хорошо, чтобы понимать речь и научиться разговаривать.
    Читать дальше →
  • Обход областей видимости или неожиданное поведение функции EACH

      Никогда не понимал зачем в PHP функция each. Ведь есть foreach…
      Но сегодня у меня «сломался» один участок кода, который жил шесть лет.
      Там была конструкция с использованием each.
      ошибка была исправлена секунд за 30 — давно думал исправить это все на foreach, но оставлял в качестве напоминания о том, какой индокод у меня был в свое время. Но просто исправить и пройти мимо я не мог.
      Итак each против ООП:
      1 — each игнорирует области видимости и спокойно выводит private свойства.
      Читать дальше →
    • Переопределение предка (dirty hack)

        UPD: Лучше конечно такого избегать. Все это страшно, ужасно, и воняет. Но воняет чуть меньше чем VQMOD, и если уж приходится патчить «живой» и обновляемый, но жуткий легаси, то такой подход имеет право на существование. Но НИКОГДА не делайте так в проектах которые вы только начинаете или можете изменить архитектуру на более расширяемую. Статью оставляю как есть. «На память».




        Иногда очень хочется переопределить поведение класса родителя, не меняя его код.
        К примеру поменять место хранения шаблонов из файлов в базу… или добавить кэширование.
        или заменить в ORM удаление записей на пометку их как удаленные.
        Да мало ли что мы можем пожелать изменить.
        Если каждый программист будет лезть в ядро фреймворка или просто в чужой код, то это будет каша.
        У этой задачи есть множество решений. Я хочу предложить то, которое мне нравится больше всего.
        Решение основано на __autoload() а точнее на spl_autoload_register.
        Читать дальше →