Главная » Программирование

Поговорим о проблемах кэширования

Существует две главные проблемы программирования: именование переменных и инвалидация кэша. Поговорим о второй. Но для начала разберёмся с самим термином — кэширование. Я нашёл много определений, но мне они не очень нравятся. Приведу моё: Кэширование — от английского cacher (прятать, завёртывать), сохранение данных данных в другом месте или виде. Пункт, который меня смутил в других определениях — повсеместное упоминания ускорения. Но это не всегда так. Мы можем складывать данные и в более медленное хранилище, чтобы разгрузить основное. Тем самым уменьшив нагрузку на основной сторадж. Можем преобразовать данные в вид более удобный для парсинга как то xml или json. Можем разбрасывать…

Читать далее »

Недостатки laravel

Я очень люблю фреймворк laravel, пользуюсь им начиная с 3-й версии, тогда он был как глоток свежего воздуха на фоне zend и symfony. Уважаю Тейлора за проделанную работу, за принесённую в php фреймворки идею удобного апи и умение копировать лучшее из других фреймворков вроде RoR. О плюсах сказано уже много, но у него есть свои недостатки. Эти недостатки не фатальны, а некоторые и вовсе мои личные привычки, которые другим покажутся надуманными. Всё дерьмо вылитое ниже не сильно влияет на мою оценку laravel, который считаю лучшим фреймворком в мире PHP. И спасибо @kotchuprik и его статье, который подтолкнул высказаться и дал некоторые идеи.

Читать далее »

Continuous Integration, delivery, deployment

Данный пост противопоказан и может оскорблять чувства верующих в церковь Мартина Фаулера, так как является довольно вольной трактовкой, но обтесанной годами моей практики. Сидит программист, пишет свой код, думает о пиве и здесь появляется другой программист, с ним тестировщик и, прости Господи, проектный менеджер. Здесь уже не до пива, код больше нельзя править на сервере через удалённый доступ. Приходится разворачивать git, лепить ветки, создавать билды и гонять тесты и в дело вступает супергерой Continuous. Последнее время принято мешать три шага Continuous в одну кучу, хотя эти шаги сильно отличаются по целям и подходам. Эти шаги — Continuous Integration, Continuous Delivery и Continuous Deployment.

Читать далее »

Continuous integration с Jenkins

Continuous integration или непрерывная интеграция — это практика создания  автоматизированной сборки проекта. Хотя это и звучит как-то заковыристо, но это то, что программист делает ежедневно. Мы пишем код и проверяем его на синтаксические ошибки, на соответствие стилю кодирования, прогоняем тесты, боремся с copy-past и тд. и т.п. В PHP существует масса инструментов. позволяющих это автоматизировать, в PEAR есть пакет phpqatools, который ставит сразу пачку таких утилит. Но прогонять их руками неудобно, к тому же хочется иметь какой-то графический интерфейс, чтобы просматривать отчёты, чтобы наблюдать как изменяется проект, иметь возможность смотреть на старые версии и т.д. Здесь на помощь приходит Jenkins.

Читать далее »

Шаблон для PHP приложений

В очередной раз увидел чей-то велосипед и решил — с меня хватит. Сейчас в мире php наступила пора стандартизации и этим нужно пользоваться, хватит лепить приложения как попало. Сел, создал репозиторий  на github и заполнил его кусками из своих проектов. Все желающие могут присылать пожелания, баги, и пулл реквесты https://github.com/AmdY/php-app-skeleton.

Читать далее »

Комбинаторика, нахождение слагаемых по сумме

Я начинал свой программистский путь с выполнения лаб по Delphi для друга и желания замутить свой футбольный менеджер. С первым у меня всё получилось, и товарищ благополучно отстрелялся, а с футбольным менеджером не вышло и вряд ли получится, потому что я теперь осознаю что не смогу сделать графический показ матча, как у конкурентов. Но у той мечты есть положительный момент — я столкнулся с комбинаторикой. Вот один из примеров, служит для нахождения слагаемых по известной сумме. Алгоритм вроде бы не совсем мой, а переписан с варианта на pascal. $parts = array(0, 1, 2, 3, 4, 5, 7, 8, 9); rsort($parts);…

Читать далее »

Ciklum PHP Saturday

Я до сих пор не могу в поверить, но ЭТО случилось — я побывал на первой белорусской конференции веб разработчиков, где мне ВСЁ понравилось. Мне прямо сейчас нужно активно работать и нагонять время потерянное в отпуске, но не могу сдержаться и буду писать отчёт о Ciklum PHP Saturday. Это встреча php разработчиков, которая прошла в Минске 13 августа 2011 года.

Читать далее »

Убиваем плохой плагин без загрузки netbeans

Недавно сделал большую глупость и установил на netbeans 7.0 плагин для поддержки smarty. Раньше пользховался этим очень хорошим плагином, но толи в новой версии netbean ситуация изменилась, толи плагин так испортился. В общем, после установки ничего не подхватилось, решил перегрузить IDE и приплыли, загрузить по новому не получилось, примерно на 70% индикатора загрузки процесс остановился. Бросился в интернеты, искать как загрузить netbeans в режиме safe mode, чтобы не загружались все плагины и можно было в настройках отключить бажный. Ничего не нашёл. Пришлось выбрать иной путь и покопаться в конфигах, благо они в xml. Делюсь навыком отключения плагина в netbeans через конфиги. Задим…

Читать далее »

Тестовое задание и вопросы на собеседовании для программиста

На DOU недавно разразились циклом статей про рекрутёрство. Это для нашего айти является огромной чёрной дырой. Начиная с профильного образования, которое практически нельзя получить ни в одном ВУЗе страны, где учат чему угодно, только не тому, что реально пригодится в работе. Следующим идут айчары (hr), которые тоже в лучшем случае с образованием психолога, но ни где не изучают остальные секреты профессии. И у нас происходит ситауция, когда один непрофессионал, приходит к другому не профессионалу. Подтвердить свои знания корочкой и зачастую даже сертификатами мы не можем и начинается собеседование. Аэчаров оббижать не буду, затронем техническое. Как правило это вопросы и тестовое…

Читать далее »

Отчёт о «Всемирном дне юзабилити» в Минске

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

Читать далее »