Какие зарплаты сейчас у (Senior) PHP-Entwickler?
Куча энтерпрайзных пхп-проектов с миллионами loc говорят, что вы ошибаетесь.
Угу. Плавали, знаем. Переводили один такой "проект" исторически выросший на... блин... забыл как эту CMS звали. не Typo3...
В общем на яву переводили. Измеримый эффект: на том же железе производительность выросла примерно на порядок. А какое счастье было это всё переводить... Энтепрайз, да. Но вот шутка про самокат, она прям в точку :)
P.S. Справедливости ради, в текущем проекте народ на страховке на яве пишет так, что хочется оторвать ручки и запретить подходить к технике сложнее счёт...
Нельзя, они обижаются и жалуются начальству. А начальство просит не давить, а то один после беседы со мной "заболел" на две недели. При том что я с ними предельно корректен. Сильнее "а почему ты тут сделал так?" не давлю. Страховка, они там так привыкли. 2-3 молодых разработчика есть, которым ещё можно что-то объяснять, остальные... Жуткое коболисткое болото.
А можете вкратце рассказать, что может актуальный ПХП?
1. Появился match - см. https://www.php.net/manual/ru/control-structures.match.php
2. Безопасный null (используется знак "?") - см. https://sergeymukhin.com/blog/php-8-operator-nullsafe
3. Объявление типы данных в функциях и методах см. - https://www.php.net/manual/ru/language.types.declarations.php
4. Аннотации - https://www.php.net/manual/ru/language.attributes.overview.php
5. Goto (относительно новая) см. - https://www.php.net/manual/ru/control-structures.goto.php
6. PDO (относительно новая, что-то типа ADO) см. - https://snipp.ru/php/manual-pdo
P.S.:
1. Есть куча фреймворков для PHP - Yii Framework, Prado Framework, Kohana Framework, Laravel, Symfony, Zend Framework, итд.
2. Мне лично нравится сериализация в PHP см. пример:
<?php class Person { private $firstname; private $lastname; private $birthday; public function __construct($firstname, $lastname, $birthday) { $this->firstname = $firstname; $this->lastname = $lastname; $this->birthday = $birthday; } public function set_firstname($firstname) { $this->firstname = $firstname; } public function set_lastname($lastname) { $this->lastname = $lastname; } public function set_birthday($birthday) { $this->birthday = $birthday; } public function get_firstname() { return $firstname; } public function get_lastname() { return $lastname; } public function get_birthday() { return $birthday; } public function tostring() { return $firstname . ' ' . $lastname . ' ' . $birthday; } } $p = new Person('Anton', 'Mustermann', '01-01-1980'); $p2 = new Person('Anna', 'Musterfrau', '02-05-1982'); echo serialize($p); echo ' '; echo serialize($p2); ?>
Результат (сериализованный объекто можно сохранить в БД, в файл, в сессию, и десериализовать):
O:6:"Person":3:{s:17:"Personfirstname";s:5:"Anton";s:16:"Personlastname";s:10:"Mustermann";s:16:"Personbirthday";s:10:"01-01-1980";} O:6:"Person":3:{s:17:"Personfirstname";s:4:"Anna";s:16:"Personlastname";s:10:"Musterfrau";s:16:"Personbirthday";s:10:"02-05-1982";}
3. Простое логгирование в PHP см. пример:
<?php ini_set('log_errors', 1); ini_set('error_log', 'error.log'); ob_start(); $bv. error_log(ob_get_clean()); ?>
Результат:
[24-Jul-2022 22:48:23 Europe/Berlin] [24-Jul-2022 22:48:23 Europe/Berlin] PHP Notice: Undefined variable: bv in C:\xampp\htdocs\code\err.php on line 6
А написать "правильно" и спросить "почему тут плохо?"
Пф... Щаз.
1. Никакой разницы тут нет, это вкусовщина, мы привыкли делать так.
2. Шееееееф! У меня времени нет тикеты делать, а он ко мне докапывается и странного хочет!
А когда спрашиваешь "почему сделал так", так просто отбиться не получается. На любое "у меня нет времени" и жалобу - поясняю что мне надо править баг и он может быть в этом куске, но я не понимаю почему тут сделано так. Бурчат, воняют, но пояснять приходится. А в процесс пояснений можно воткнуть свою мысль. В качестве пояснения "почему мне тут было плохо понятно".
Самых ярых коболистов я не трогаю. Они дальше копи-пейста и поправить + на - не заходят...
Суть не в том, что пхп-дотнет лучше/хуже
а в том, что пишут на том, что знают, и переучиваться особо не хотят. Только мало кто себе в этом признаётся.
Одно дело знать нормальный язык и не хотеть переучиваться на дерьмовый (типа Дотнет - Джаваскрипт или Пых), и другое дело - наоборот.
Ну, ява в 2008 тоже не такая шустрая была. Там больше выигрыш был от очистки всего от накопившихся слоёв правок. Когда никто не понимает что он делает, но пишет своё дополнение. Одно и то же, то в файл, то в БД, то вообще хттп запрос. И чтоб быть "уверенным" а забабахаем-ка всюду! 3 раза одно и тоже в 3 места писали. Для надёжности. Ну и когда разницу между set-ом и листом не понимают, легко из O(n^2) в О(logn) переписать.
А так, после того как в пыхыпы добавили goto, я на проекты с ним не подписываюсь. Мне боязно :)
<?php class Person { private $firstname; private $lastname; private $birthday; public function __construct($firstname, $lastname, $birthday) { $this->firstname = $firstname; $this->lastname = $lastname; $this->birthday = $birthday; } public function set_firstname($firstname) { $this->firstname = $firstname; }
Какой-то плохой Blazor получился. Пыха конечно была раньше, но в том-то и дело, что плохой язык просто обмазывали свистелками и перделками.
А как выглядит проект на пыхе из сотен классов? И как его код миксуется с разметкой?