Pull to refresh
22
0

User

Send message
Не хочу переходить, на личности, но зачем спорить? За плечами 8 лет ежедневного кодинга на PHP, сейчас мне этот язык нравится все меньше, в больших проектах «магия» и отсутствие типов иногда влечет за собой печальные последствия (в одном месте возвращает метод boolean в другом void и прочее)… «Мы уверены» — да ты можешь быть уверен, что ТВОЙ код не поменяется. Но если ты работаешь не один над проектом, который постоянно развивается, нельзя быть в чем-то уверенным. Это с родни преждевременной оптимизации, когда ты пишешь код основываясь на фичах текущей версии языка забывая о том, что язык изменяется — меняя свое поведение. Тем самым у тебя получается нечитаемый говнокод, который оптимально работает только с одной версией PHP.

Пример из жизни «напиши опрос — ну там ставишь один вариант ответа и голосуешь» -> «ну нам бы хотелось что бы было несколько опросов сразу» -> «ну да, но кроме radio должен быть еще выбор нескольких вариантов ответов» -> «а добавьте так что если выбрали один вариант, появляются другие зависимые от него»… Между -> может пройти и месяц и год и неделя… Код изначально нужно проектировать так что бы его можно было легко модифицировать.

Вариант с магией и огромным switch — плохая практика, во первых он разрастется со временем до такой степени, что понять его через 2 месяца не представится возможным, а заказчику нужно добавить фичу еще вчера…
Не нужно забывать о возможных изменениях кода. Допустим $a->bar у нас был когда-то int и мы делали так
$a->bar = 1;
switch($a->bar) { case 1: ...

Со временем мы пришли к выводу, что нам нужно изменить int на array $a->bar = array(); и теперь по ВСЕМУ коду, который в своей работе использует класс $a, необходимо вносить изменения.

Если бы мы использовали get/set то изменения коснулись бы только этих методов класса
// было
public function setBar($value) {
   $this->bar = (int) $value;
}

// стало
public function setBar($value) {
   $this->bar[] = $value;
}
Красота, а что делать программистам из небольших городов, недавно закончивших университет по профессии, из которого вынесли ноль на палочке. Которые хотят учится и развиваться, при этом оставаясь жить в своём родном городе?

Лично для себя, ради закрепления знаний, думаю получить сертификаты по MySQL и PHP, НО кроме меня эти сертификаты никому не нужны. «Погоня за идеалами вызывает депрессию и приводит к прокрастинации...» вот и получается, что бы жить счастливо нужно занижать свою планку ожиданий от профессии.

P.S: Стаж веб-программиста 8 лет, пойду дальше двигать баннеры :(
Давным давно, родители запихнули меня в летний лагерь от «Центра Детского и Юношеского Творчества».
Так вот там были кружки программирования и компьютерного дизайна, и это начале 2000-x. Преподавали нам Pascal, прям как на первом курсе института :)

Надеюсь что в Уфе есть подобные центры.
Как я понимаю, что бы быть успешным дружинником, нужно активно просматривать кучу порносайтов в поисках детского порно? Это кем надо быть что бы в свое свободное время рыскать по сети с запросом «школьники бесплатно скачать»? xD
В свое время со мной в одной группе учился человек по имени Рифат и ник у него был соответствующий RiFAT, что напомнило мне файловую систему FAT32 и понеслись шуточки вроде «на первом курсе Рифата звали РиФАТ16».

рифат32 передвигает курсор мыши взглядом
Рифат32 может словами объяснить компилятору то, что он от него хочет
Рифат32 может голосом воспроизводить 8 битную музыку.
рифат32 не общается с людьми он давно написал бота совершеннее человека.
Рифат32 может двигать мышкой за экраном монитора
Говорят Чак Норрис — первый и единственный неудачный опыт Рифата32 в генной инженерии
Рифат32 чтобы посмотреть фильмы на ДВД просто проводит по диску пальцем. Просмотр обычно занимает не более трех секунд.
Рифат32 убивает кликом мышки по аватрке
Рифат32 настолько крут, что может кликнуть по твоей аватарке, даже находясь на службе в армии!
Рифат32 может заставить работать Windows95 без сбоев.
Грядет новая волна поделий начинающих «какеров».
Ждем высокоскоростные чекеры, кликеры, спаммеры и т.п. :)
Давно существуют различные системы IDS (Intrusion Detection System) и IPS (Intrusion Prevention System), идея автоматически проводить мониторинг ресурсов не нова. Хотя вряд ли, данная тема, касается веб-разработчиков. Это скорей уже обязанности сис админа, грамотно настроить сервер.

ИХМО: мне кажется невозможно быть одновременно крутым админом, знающим все плюшки различных конфигураций и крутым веб-разработчиком, знающим различные методы атак на веб приложения и умеющим писать код без дыр. В свое время пытался освоить и одно и другое, но чашу весов перевесило программирование, проще написать надежное приложение, чем мучиться с настройками сервера (ведь это задача хостера, за то мы ему и платим).

Конечно, личные меры безопасности никто не отменял — не пересылать пароли в открытом виде по IM или почте, не хранить пароли в открытом виде, не сохранять пароли в FTP менеджерах, обозревателях и прочих Total Сommander-ах, не пускать вирусняк на свой рабочий комп (юзать unix и ставить открытое ПО из исходников), использовать TrueCrypt и Git для бекапа данных (у меня крипто-контейнер с проектами лежит в Dropbox, а там репозитории). В общем паранойя по полной и будет счастье :)
Какая разница нашел он начинающих или профессионалов, если есть проблемы, которые надо решать.
Это всего лишь примеры, неужели вы думаете, что можно описать все возможные варианты?
Это как писать книгу о языке программирования и прикладывать к ней архив всех open source проектов доступных в сети.
Извольте, сударь, скрипт киддисты представляют не малую угрозу.

На одном корпоративном хостинге, увели пароль от FTP, в итоге злоумышленники поигравшись с веб шеллаами различных мастей, решили запустить кривой скрипт вставки iframe по всему хостингу (который загружали в upload директории). В итоге этот автоматизированный скрипт «какеров» покоцал очень много файлов, в результате чего большинство сайтов на хостинге отвалилось.

Не стоит надеяться, что лично Вас будут ломать профессионалы с «мышлением», стоит изначально применить проверенные методы, описанные в статье.
В статье описывается методика поиска, и если ты не разработчик (у тебя нет бэкапа и доступа к git репозиторию), а сторонний человек, которого попросили проверить/исправить сайт, она довольно действенна.

InSys, что говорить о времени изменения файла, когда на «какерских» форумах обсуждают ".BAT вирусы" и «как отправить POST запрос (Delphi 7)». Говорите eval устарел, значит нужно поделиться знаниями:

Список функций, которые вызывают callback
array_filter
array_map
array_walk
array_diff_uassoc
array_udiff_assoc
array_udiff_uassoc
array_intersect_uassoc
array_diff_ukey
array_intersect_ukey
array_reduce
array_udiff
uasort
usort
array_uintersect_assoc
array_uintersect_uassoc
array_uintersect
array_walk_recursive

Список функций, которые выполняют PHP код
create_function
eval
assert
{$name}()
preg_replace(//e)

Переменные, которые можно установить через ini_set
unserialize_callback_func
assert_callback
output_handler

Немного системных функций
session_set_save_handler
set_exception_handler
set_error_handler
restore_error_handler
register_shutdown_function
restore_exception_handler()
ob_start
trigger_error
От LFI не спасет.
Еще там вроде нет поддержки cookie.
Приятней смотреть на график, если не затруднит.
За прогрессом трудно угнаться, особенно если проект берет свое начало в 2003 году и им пользуется ~3000 человек, на разных хостинговых площадках.
Дескриптор закрывается, когда уничтожается экземпляр класса.
Я читал здесь статью по поводу открытых дескрипторов и заголовка keep-alive, но лично я придерживаюсь мнения, что "PHP создан, чтобы умирать".
Спасибо за дельные замечания, обещаю перевести все комментарии.

По поводу 2 пункта, хотелось что бы файлов было как можно меньше для простоты использования, по поводу хардкода существует метод setConnectionFactory, который позволяет определять собственные реализации.

Если бы в PHP можно было использовать вложенные классы, код выглядел бы на порядок эстетичней.
Дело в том, что проект в котором используется эта библиотека должен работать с PHP 5.2
А чем плох мой велосипед?

Information

Rating
4,929-th
Location
Бобруйск, Могилевская обл., Беларусь
Date of birth
Registered
Activity