autoincrementing ID
Читать дальшеАрхивы: Заметки
ТЗ сейчас писать не принято
Сталкивался с проектами с ужасной кодовой базой, огромным техническим долгом и прочими прелестями от – известных компаний.
Сейчас сам пилю такой же и так же.
Куда-то мы свернули не туда в подражании ФП…
подражание ФП
Читать дальшеeao197: Нежданная засада с оценкой затраченного времени
как же правильно оценивать трудозатраты по заказному проекту вот в таких случаях, когда приходится рожать идеи и это происходит подобным образом
…
даже когда по заказному проекту идет плотная работа с минимумом задержек и отвлечений, все равно выходит где-то по 110-120 часов на человека в месяц
Why is OCaml better than Haskell?
In summary, Haskell is very focused on an idealized vision of programming, and OCaml is more focused on the messy needs of real programs, while still offering all the benefits of functional programming where you can afford to use them.
Читать дальшеДля завершения холивара с адептами ФП
А по поводу парадигм — прошу внимательнее присмотреться к процессу написания адаптера на ФП:
Читать дальшеКак бывает когда фронтендеры бекендера собеседуют
how many threads does Node.js have?
Читать дальшеМатематика vs эмпирика
Эмпирические решения частенько лучше обобщенных, математических
Читать дальшеПризнаки плохих компаний для программиста
Дресс код, компания зарабатывает деньги не на программном продукте, …
Читать дальшеSoftware Architecture Approaches – comparison
Software Architecture Approaches – comparison
Читать дальшеРаботать надо не головой, а компьютером
функционал обеспечивается не языком или фреймворком, а бизнес-логикой самого продукта
Работать надо не головой, а компьютером
джунов не хотят брать. Не потому что знают мало. А потому что синдром Даннинга-Крюгера одного тормозит всю работу всем
Симптоми стресу
Як мінімізувати стрес під час віддаленої роботи
Окрім вищезгаданих проявів, що характерні для вигорання, є низка ознак і поведінкових патернів, які можуть свідчити про високий рівень хронічного стресу.
Емоційні ознаки:
- підвищена дратівливість або спалахи гніву;
- уникання контакту з іншими людьми;
- надмірне занепокоєння або почуття смутку чи відчаю.
Фізіологічні ознаки:
- почуття втоми або пригніченості;
- головні болі, болі в животі або запаморочення;
- погіршення якості сну, безсоння.
Когнітивні ознаки:
- проблеми з концентрацією та погіршення функцій пам’яті;
- почуття невпевненості, тривоги або роздратування;
- стрибки ідей — надзвичайне прискорення та обривистість думок.
Поведінкові ознаки:
- підвищене споживання алкоголю та тютюну, зміна апетиту;
- постійне занепокоєння тим, чи достатньо ви працюєте, чи робите забагато або замало для вашої команди;
- пасивність, прокрастинація, уникнення відповідальності.
из жизни в разработке “складов”: Остатки
в итоге они все уволились, да
Читать дальше7 бомб рванут если не делегировать
Ты круто все делаешь сам 💪
Круче, чем любой твой сотрудник.
Поэтому все сложное и важное всегда пилишь именно ты.
О холиварах программистов
Суть схвачена:
Как PHP превращается в Java/C#
что было добавлено
(на подходе дженерики, асинхронщина аля Node.js и JIT компиляция)
Hack, PHP-подобный язык программирования общего назначения со статической типизацией, не стал популярным, несмотря на авторов: Facebook
PHP 8
Добавлена поддержка атрибутов (аннотаций)
Добавлена поддержка типов union
public function setNumber(int|float $number): void
Добавлены WeakMap
С WeakMaps ссылки на объекты автоматически собираются сборщиком мусора, когда объект становится недоступен.
$this->cache = new WeakMap();
…
return $this->cache[$obj] ??= $this->computeSomethingExpensive($obj);
Новое исключение ValueError
При определении функций можно использовать вариативный аргумент
public function method(int $many, string $parameters, $here)
extends A {
public function method(…$everything) {
Возвращаемый тип static
public function doWhatever(): static {
return $this;
}
Литерал имени класса для объекта
Теперь можно извлекать имя класса объекта с помощью $object::class. Результат будет такой же, как в случае с get_class($object).
Настройки синтаксиса переменных
New и instanceof теперь можно использовать с произвольными выражениями: new (выражение)(…$args) и $obj instanceof (выражение).
$class = new (collect([‘Foo’, ‘Bar’])->random());
Интерфейс Stringable
В PHP 8 появился новый интерфейс Stringable, который добавляется автоматически, как только класс реализует метод __toString
Трейты могут определять абстрактные приватные методы
trait MyTrait {
abstract private function neededByTheTrait(): string;
throw можно использовать как выражение
Выражение throw теперь можно использовать там, где допускаются только выражения: в стрелочных функциях, coalesce-операторах тернарных условных операторах (ternary/elvis).
$callable = fn() => throw new Exception();
$value = $nullableValue ?? throw new \InvalidArgumentException();
В параметрах списка допускается опциональная висящая запятая
function method_with_many_arguments($a, $b, $c, $d, )
method_with_many_arguments(1, 2, 3, 4,);
Обработка исключений без сохранения в переменной
} catch (\InvalidArgumentException) {
Добавлена поддержка типа mixed
В PHP 8 появился новый тип mixed. Он может быть эквивалентен типам array, bool, callable, int, float, null, object, resource, string.
Добавлена поддержка продвижения свойств конструктора
public function __construct(
public int $id,
public string $name,
) {}
Добавлена поддержка выражения match
Предложено добавить новое выражение match, которое аналогично switch, только с более безопасной семантикой и возможностью возвращать значения.
Добавлена поддержка оператора nullsafe (?->)
$country = $user?->getAddress()?->country?->iso_code;
Добавлена поддержка именованных аргументов
array_fill(start_index: 0, num: 100, value: 50);
https://habr.com/ru/company/mailru/blog/525614/
PHP 7.3
Добавлен новый оператор объединения с null
Объявления скалярных типов
Объявления типов возвращаемых значений
Интерфейс Throwable
Обнуляемые типы
Ничего не возвращающие функции
Синтаксис квадратных скобок для деструктуририрующего присваивания в массиве
Видимость констант класса
PHP 7.2
Новый тип object
function test(object $obj) : object
Разрешено переопределение абстрактных методов
abstract function test(string $s);
extends A
{
abstract function test($s) : int;
Sodium теперь является основным модулем
Добавлено хеширование пароля с помощью Argon2
PHP 7.1
Обнуляемые типы
function answer(): ?int
Ничего не возвращающие функции
function shouldreturnnothing(): void
Псевдотип Iterable
Closure из callable
public static function fromCallable(callable $callable) : Closure
Синтаксис квадратных скобок для деструктуририрующего присваивания в массиве
[$a, $b, $c] = $array;
[“a” => $a, “b” => $b, “c” => $c] = $array;
Видимость констант класса
Перехват нескольких типов исключений
PHP 7.0
Повышение производительности
PHP 7 почти вдвое быстрее, чем PHP 5.6.
Значительное сокращение использования памяти
PHP 7.0 стал громадным шагом вперед с точки зрения производительности и использования памяти. Для страницы с запросами к базе данных версия 7.0.0 более чем в 3 раза быстрее, чем 5.6 с включенным opcache в 2.7 раза быстрее без opcache! С точки зрения использования памяти разница тоже существенная!
https://habr.com/ru/company/otus/blog/524270/
Интерфейс Throwable
Поддержка анонимных классов
Добавлен новый оператор объединения с null – «??»
$x[“a”] ?? $x[“b”] ?? $x[“c”]
Добавлен новый оператор – spaceship (космический корабль) (<=>)
return $a <=> $b; // return ($a < $b) ? -1 : (($a > $b) ? 1 : 0);
Объявления скалярных типов
add(float $a, float $b): float
Объявления типов возвращаемых значений
Добавлена возможность возвращать типы помимо скалярных – классы, включая наследование
Групповые объявления use
Делегация генератора
В теле функций генераторов разрешен следующий новый синтаксис
yield from
Синтаксис кодирования Unicode — “\u{xxxxx}”
Чувствительный к контексту лексер
С этим нововведением глобально зарезервированные слова стали полу-зарезервированными
Выражения return в генераторах
Единый синтаксис переменных https://wiki.php.net/rfc/uniform_variable_syntax
Аджайл – не работает
Аджайл – не работает если:
1. Заказчики не могут по нем работать
2. Программисты не могут по нем работать
Тимлид – это сержант
Тимлид как сержант в американской армии. Он спит в казарме с рядовыми, умеет делать почти все лучше них, и занимается помимо этого оперативным руководством.
Читать дальшеФормируем путь – слеши
Всегда делай безопасную сборку URI
Читать дальшеИдеальные софт-скилы
Мне кажется, что это качества любого человека, который либо стал, либо имеет потенциал стать профессионалом.
Читать дальше