Бортовой журнал Ктулху

Что я узнал работая программистом в сфере финансов

Перейдя с аутсорса в финансовую сферу, столкнулся со многими вещами, с которыми раньше не сталкивался. Хотя, если и сталкивался, то не уделял им столько внимания ввиду того что практически не работал на "живых" проектах.

Когда единственный проект "живой", ошибки недопустимы. Аутсорс же, как правило, - это всякие лендинги, магазинчики и прочие бложики, проект запускается после окончания разработки, а в случае правок рабочего проекта частенько там такой треш, что лучше бы его не было вообще.

Безопасность и надежность - самое главное.

Нельзя допускать ни малейшей возможности доступа к закрытой информации и прочим личным данным извне.

Категорически запрещена передача информации (например отправка файлов с персональными данными) любым способом кроме разрешенного.

Не выводить пароль в формы открытом виде.

Тестировать должен заказчик. Это перекладывает ответственность за возможные баги на него. Только после принятия работы заказчиком можно выливать в продакшен. Всегда нужно обезопасить свой тыл, никакой самодеятельности.

Заказчик - лицо, наиболее заинтересованное чтобы все работало как часы, в отличие от программиста, которому хочется побыстрее закрыть проект.

Постоянно напоминать заказчику о том, что он должен протестировать задачу. В конце концов, это ему нужнее.

Если тестирование прошло успешно, нужно протестировать еще раз. Скорее всего что-то упущено. Например, где-то остался забытый print_r или var_dump. Не полениться и пройтись поиском по файлам.

Перед началом работ обновить проект из SVN/GIT. Лучше всего удалить и закачать заново, если не было еще правок. Это избавит в будущем от конфликтов как в файлах так и с руководством.

Очень внимательно тестировать боевой функционал чтобы случайно не совершить какую-либо финансовую операцию на боевой среде.

Лучше воспользоваться специальным тестовым аккаунтом.  Не забыть закомментировать отправку почты или переключить на себя.

Будь внимателен. Если результата правок не видно, возможно, ты не в том файле работаешь. Такое бывает.

Не торопиться. Что быстро делается - долго переделывается.

В IDE перед коммитом просмотреть код, не подсвечиваются ли он ошибки, необъявленные переменные, классы. Это может привести к неработоспособности боевого функционала, что печально и ведет к убыткам.

Всегда проверять, не используется ли редактируемый функционал где-то еще. Может быть в другом месте он нужен с другими параметрами.

Поэтому, новые параметры добавляем в конец и присваиваем по умолчанию null или false.

getPosts($id,$order) => getPosts($id, $order, $limit=null)