Все записи автора Sepuka

selfEncapsulation

Мартин Фаулер в своем блоге рассуждает о термине self-encapsulation который сам по себе означает следующее: доступ к приватным свойствам класса внутри самого класса должен осуществляться через методы-геттеры, не смотря на то, что свойства обычно доступны внутри класса во всех языках программирования. В итоге он не рекомендует рьяно использовать self-encapsulation всюду, он лишь говорит что ценность этого подхода пропорционально размеру класса (но ведь мы пишем только маленькие классы) и может принести профит если требуется дополнительная логика при работе со свойствами. Кроме этого при наследовании также можно переопределить эту логику. Т.о. «на первых парах» при создании нового класса не стоит придерживаться этого принципа, если нет прямой необходимости.

git fixup

Мне показали удобную возможность для изменения промежуточных коммитов — git fixup, после прочтения этой статьи я попробовал изменить один из коммитов, действительно это просто.

  1. Мы вносим изменения
  2. Помечаем промежуточный коммит, в который нужно эти изменения применить git commit --fixup {commit_hash}
  3. Ребейзимся по нужному предку git rebase -i --autosquash {some_parent_commit_hash}
  4. profit!

phpstan

Интересная программа phpstan приближающая PHP к компилируемым языкам, она позволяет анализировать код без его запуска, работает быстро. Т.о. ей найдется место рядом с тестами, например в рамках проверки кода на CI.

php 7.1.1

Скомпилировал на raspberry pi php 7.1.1
./configure --prefix=/opt/php-7.1.1 --with-config-file-path=/opt/php-7.1.1/etc --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/usr/lib/arm-linux-gnueabihf --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm
и попробовал deployer для деплоя. Очень легко деплоится, мне понадобилось пара минут чтобы с нуля залить приложение на сервер, правда приложение простое и не ясно как будут проходить нестандартные задания, но думаю проще чем в капистрано.

albert

Открыл для себя программу похожую на spotlight для macOS, называется alber
потому что мне нужно было набирать одну единственную команду: я хотел набирать что-то вроде red XXXX, где XXXX номер задачи редмайна и переходить на эту страницу, albert позволяет делать это, с помощью плагинов которые идут вместе с пакетом.
ставится так
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install albert

albert
albert

Никому больше нельзя верить

Снимок экрана от 2016-07-28 13:02:18
Кажется, в приведенной таблице истинности ошибка: конъюнкция обозначаемая знаком & перепутана с дизъюнкцией обозначаемой знаком OR. Думаю что 3 и 4 столбцы надо поменять местами.
А ведь это Никлаус Вирт, издание 2010 года