Мартин Фаулер в своем блоге рассуждает о термине self-encapsulation который сам по себе означает следующее: доступ к приватным свойствам класса внутри самого класса должен осуществляться через методы-геттеры, не смотря на то, что свойства обычно доступны внутри класса во всех языках программирования. В итоге он не рекомендует рьяно использовать self-encapsulation всюду, он лишь говорит что ценность этого подхода пропорционально размеру класса (но ведь мы пишем только маленькие классы) и может принести профит если требуется дополнительная логика при работе со свойствами. Кроме этого при наследовании также можно переопределить эту логику. Т.о. «на первых парах» при создании нового класса не стоит придерживаться этого принципа, если нет прямой необходимости.
Все записи автора Sepuka
git fixup
Мне показали удобную возможность для изменения промежуточных коммитов — git fixup, после прочтения этой статьи я попробовал изменить один из коммитов, действительно это просто.
- Мы вносим изменения
- Помечаем промежуточный коммит, в который нужно эти изменения применить
git commit --fixup {commit_hash} - Ребейзимся по нужному предку
git rebase -i --autosquash {some_parent_commit_hash} - 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 для деплоя. Очень легко деплоится, мне понадобилось пара минут чтобы с нуля залить приложение на сервер, правда приложение простое и не ясно как будут проходить нестандартные задания, но думаю проще чем в капистрано.
boinc статистика
Длинные выходные не должны пройти даром
Я студент HTML академии
albert
Открыл для себя программу похожую на spotlight для macOS, называется alber
потому что мне нужно было набирать одну единственную команду: я хотел набирать что-то вроде red XXXX, где XXXX номер задачи редмайна и переходить на эту страницу, albert позволяет делать это, с помощью плагинов которые идут вместе с пакетом.
ставится так
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install albert



