- 1
- 2
- 3
static function beforeIblockElementAddOrUpdateResetResponseAuthor($fields){
...
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+159
static function beforeIblockElementAddOrUpdateResetResponseAuthor($fields){
...
}
pushistayapodmyshka 21.11.2014 14:27 # +1
bot 21.11.2014 17:25 # 0
guest 22.11.2014 01:03 # +5
pushistayapodmyshka 22.11.2014 14:33 # 0
guest 22.11.2014 15:16 # +1
pushistayapodmyshka 22.11.2014 16:03 # −4
guest 21.11.2014 18:44 # 0
Анонимус 21.11.2014 19:43 # 0
А так как с ООП в PHP сообществе обычно не очень хорошо, то вот такие конструкции там и получаются.
Анонимус 21.11.2014 22:28 # +2
Если ты не можешь назвать метод ОДНИМ глаголом, значит он делает БОЛЕЕ одной вещи, и вероятно должен быть отрефакторен.
barbarbar 27.11.2014 15:14 # −1
Это колбек для события, префикс beforeIblockElementAddOrUpdate нужен для того, чтобы можно было быстро поиском по коду найти все колбеки для определенного типа. Я бы только подчеркивание добавил, чтобы отделить префикс от названия метода (ResetAuthor).
Анонимус 27.11.2014 15:21 # −1
Метод должен называться исходя из того, что он делает. А навешивать его можно на какое угодно событие. А искать нужно посредством IDE а не посрдеством "поиск по коду".
barbarbar 27.11.2014 15:27 # 0
Про "искать посредством иде" оставьте байку для тех, кто держит код на локальной машине.
Анонимус 27.11.2014 15:56 # 0
Название метода зависит от его действия, а не от того по какой причине его вызывают.
Например, вот (извините что на пайтоне):
>>оставьте байку для тех, кто держит код на локальной машине.
штоаа?;)
У Вас часть кода лежит удаленно и Вы ищите по нему "поиском по коду" причем так, что IDE не имеет туда доступа?? Типа зашли по FTP фаром и нажали F4?
defecate-plusplus 27.11.2014 16:04 # 0
если пхп-программист не способен руками подправить код на прод сервере, значит он не может называться проффесионалом
Анонимус 27.11.2014 16:11 # 0
defecate-plusplus 27.11.2014 16:14 # +1
Анонимус 27.11.2014 16:28 # 0
bormand 27.11.2014 16:36 # 0
Само собой. Причем периодически сохраняя недоперепиленный файл в редакторе.
> авком
Фу. Настоящий пыхер правит текстовым редактором.
Анонимус 27.11.2014 16:39 # +1
Но это не совсем настоящий. Совсем настоящий (как я уже говорил) идет по FTP тотал коммандером, жмет F4 и правит в блокноте
bormand 27.11.2014 16:44 # 0
Анонимус 27.11.2014 16:48 # +1
bormand 27.11.2014 16:49 # +2
Анонимус 27.11.2014 16:50 # +3
bormand 27.11.2014 16:56 # +4
Анонимус 27.11.2014 16:58 # +2
inkanus-gray 27.11.2014 17:00 # +1
bormand 27.11.2014 17:01 # +1
inkanus-gray 27.11.2014 17:09 # 0
Я что-то пропустил. О каких проблемах с кодировками речь?
bormand 27.11.2014 17:21 # +1
Дефолтный swedish_ci же. А в старых мускулях, емнип, вообще кодировок не было (и, соответственно, проблем с ними).
Анонимус 27.11.2014 17:23 # 0
bormand 27.11.2014 17:26 # 0
inkanus-gray 27.11.2014 17:39 # 0
bormand 27.11.2014 17:41 # 0
Если таблички запилили до этого - уже нет. Помогала только полная выгрузка, пересоздание и перезаливка. И то какие-то грабли были, емнип.
Анонимус 27.11.2014 17:02 # +2
Но Вы же помните статью Расмуса: фреймоврки нинужны.
inkanus-gray 27.11.2014 17:05 # 0
Анонимус 27.11.2014 17:09 # +1
inkanus-gray 27.11.2014 17:11 # 0
Анонимус 27.11.2014 17:17 # +1
http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=2287
inkanus-gray 27.11.2014 17:30 # 0
Анонимус 27.11.2014 17:33 # +1
На самом деле хранить статику в файловой системе это и правда хорошо, потому что во-первых ее нгинкс отдает, во-вторых ее удобно в git, в третьих удобно редактировать.
inkanus-gray 27.11.2014 16:45 # 0
bormand 27.11.2014 16:46 # +2
Нет. Консолечка в срачло же. Настоящий пыхер никогда не опустится до использования консольных прог.
inkanus-gray 27.11.2014 16:50 # 0
Анонимус 27.11.2014 16:57 # 0
Кста, у пыха было два бинарника (не считая модуля под апач): CLI и CGI. CGI писал заголовки и X-Powerd-by, а CLI -- нет.
bormand 27.11.2014 17:00 # 0
Почему было?
Анонимус 27.11.2014 17:01 # 0
Анонимус 27.11.2014 19:25 # 0
досовых! Любую псведографическую программу называй "досовой", причем на никсах тоже.
Анонимус 27.11.2014 16:49 # 0
barbarbar 27.11.2014 19:19 # 0
barbarbar 27.11.2014 19:18 # 0
barbarbar 27.11.2014 19:17 # 0
В битриксе около 15 тысяч файлов.
Рабочее окружение проекта на битриксе, dev-копии, если по-хорошему, должно быть идентично окружению на продакшн-версии. Версия lamp, примочки, крон и прочее.
Вести разработку на локальной машине в этом случае неэффективно (потери времени на настройку окружения). Пробовали вариант создания дампов виртуальных машин, но отказались - в этом случае каждому разработчику требовался суперкомпьютер.
По этой причине, в особенности если в группе присутствуют удаленные разработчики, применяется группа dev-серверов, у каждого разработчика своя домашняя директория со своим клоном проекта. И да, к сожалению, sshfs пока не настолько крут, чтобы дать возможность ide делать поиск по коду или intelisense. Поэтому поиск по старинке, через git grep например.
Из этого вытекает и мое замечания по поводу названия метода. Предположим, я назвал, как это полагается, метод ResetResponseAuthor. И, как вы предлагаете мне найти все обработчики события в таком случае?
Это уже относится больше к соглашению разработчиков по именованию методов. Можно делать так, как показано в примере, можно вынести все обработчики в отдельный класс Events, можно еще что-нибудь придумать.
Я вижу такие названия постоянно, получая на поддержку чужие проекты, и прекрасно понимаю логику тех, кто так поступает. Если вас такая логика не устраивает - это не повод считать ее говнокодом.
Анонимус 27.11.2014 19:27 # 0
barbarbar 27.11.2014 19:40 # 0
Анонимус 27.11.2014 19:44 # 0
https://en.wikipedia.org/wiki/Docker_(software)
.
Докер это виртуализация посредством API ядра Linux. Она позволяет создавать конфигурацию и разворачивать её на любой линукс машине довольно быстро и легко. Не нужны ни суперкомпьюетры ни виртуалки.
bormand 27.11.2014 19:46 # 0
Но нужен линукс на хосте.
Анонимус 27.11.2014 19:49 # 0
>>. Версия lamp, примочки, крон и прочее
Это намекает на то, что они пишут не кросс-платформенный код)
bormand 27.11.2014 19:55 # 0
Анонимус 27.11.2014 19:59 # 0
1) проект сильно завязан на лялих (крон там, то-сё)
2) разрабы под виндой
3) компы у них слабые, виртуалку не запустить
4) девсервер стоит так далеко что подрубица по smbfs/cifs итд нельзя
Блин, ну php код-то у себя можно держать? Ну поставить заглушку вместо крона?
inkanus-gray 27.11.2014 20:24 # 0
bormand 27.11.2014 20:30 # +1
Затем, что правка кода, который в любой момент может вызвать крон, попахивает извращением... А потом еще и ждать, пока крон вызовет скрипт... Зачем всё это, если можно тупо пнуть скрипт самому?
inkanus-gray 27.11.2014 20:35 # 0
bormand 27.11.2014 21:10 # 0
Also you can write dual-mode script that takes options from command line and from request variables.
For example:
Анонимус 28.11.2014 01:35 # +2
я вот тут распинался что консолечку надо называть "дос", но называть ее "черный икран" куда круче.
А пинать скрипт это по-нашему) На одном сайте каждый 20й запрос отправлял одно письмо по рассылке. Так была реализована рассылка с задержкой без крона: у каждого 20го пользователя лишь чуть чуть тормозило, зато все работало
inkanus-gray 28.11.2014 03:13 # +2
Правда, я не уверен, что эта штука будет работать, если окружение отлично от FastCGI.
bormand 28.11.2014 06:55 # 0
Зато этот инстанс FastCGI будет занят, и на какое-то время перестанет отвечать на запросы?
inkanus-gray 28.11.2014 09:06 # 0
bormand 28.11.2014 09:24 # +1
По-хорошему - отдельный воркер со spooler'ом.
popen слишком неконтролируемый и немасштабируемый.
roman-kashitsyn 28.11.2014 10:36 # +2
Мне кажется, большинству должно хватать Gearman.
Нам нужно больше гарантий, и я пилю свой чудо сервис для асинхронного выполнения задач поверх зукипера.
roman-kashitsyn 28.11.2014 10:33 # 0
На маке тоже работает (приносит свой рантайм для эмуляции). Мелкософт озадачен, обещали на винде такое тоже запилить, чтобы прям в ней контейнеры запускать.
bormand 27.11.2014 19:29 # +1
P.S. Другое дело, что пыха довольно динамична, и IDE может не справиться с поиском.
Анонимус 27.11.2014 19:35 # +1
barbarbar 27.11.2014 19:49 # 0
Я перепробовал почти все ide под php, какие нашел, последний раз тестировал sublime, phpDesigner, phpStorm как раз, и eclipse. На машинке с 4 гигами памяти, проц i3, где-то год назад тестировал. Ждать по несколько минут, пока найдет искомое - это несерьезно, потери времени. Единственный, кто более менее справился с задачей - sublime, но это наполовину ide. Лучший вариант - искать через git grep, а это, сам понимаешь, другой метод. Intellisense кстати приходится отключать, иначе проект загружается по пять минут, а когда между задачами и проектами прыгаешь, это тоже ощутимые потери времени. Также приходится отключать и автокомплит, иначе банально построение индекса для автокомплита может повесить систему. На ubunte чуток меньше вешает, но все равно вешает.
Так что воркэраунд, применимый для разработки проектов на одном фреймворке, может быть неприменим на другом. Только и всего. И это приводит к тому, что приходится идти на соглашения между разработчиками, в именах методов в частности.
bormand 27.11.2014 19:51 # 0
Ну а как еще? "Правим строчку, проверяем, правим строчку проверяем, заебись, заработало, коммитим патчсет из 100500 строк" что-ли?
barbarbar 27.11.2014 19:58 # 0
И мне пофиг, откуда я это делаю, я могу это делать из дома с винды, могу из офиса с убунты, могу с пляжа через планшет. Я не привязан к конкретной машине, рабочее окружение создается один раз на сервере для всех разработчиков.
В вашем случае, надо каждому разработчику воссоздать на локальной машине рабочее окружение проекта, и если вдруг сотрудник пожелал работать из дома, то ему и там еще придется потратить время на создание рабочего окружения. Сплошные потери. Не эффективно.
Более того, ваш вариант я в начале своего пути кодера как раз и использовал (денвер и т.п.). Сейчас пришел к пониманию, что в команде такой вариант невыгоден.
Анонимус 27.11.2014 20:04 # 0
Ну вот Вы git pull, к Вам приехало 10005000 новых файлов, они срзу же отправились на сервер?
barbarbar 27.11.2014 20:09 # 0
Моя локальная машина лишь тонкий клиент получается, для работы вполне хватает старенького eee pc, если в дороге например или на отдыхе)
defecate-plusplus 27.11.2014 19:32 # +2
некогда разворачивать среду
правь код на серваке по ssh
Анонимус 27.11.2014 19:34 # +2
barbarbar 27.11.2014 19:51 # 0
bormand 27.11.2014 19:50 # 0
Комп с 4-8 гигами памяти - суперкомпьютер?
barbarbar 27.11.2014 19:53 # 0
defecate-plusplus 27.11.2014 19:58 # +2
что мы сделали не так?
разочарован в битриксе
я-то думал, что всё, что пахнет 1с, уж как-нибудь позволяет потратить пару десятков тысяч рублей на основное средство производства с амортизацией 3 года
barbarbar 27.11.2014 20:02 # 0
Но если серьезно, то выше http://govnokod.ru/17147#comment256907 написал причину отказа от хранения кода локально и переходу к идеологии "тонких клиентов" для группы разработчиков. Повышается мобильность, меньше затрат ресурсов. Но и конечно проявляется минус, в частности в том, что sshfs или любой другой способ монтирования удаленных директорий накладывает свои ограничения на использование intellisense и автокомплита при большом кол-ве файлов в проекте.
Анонимус 27.11.2014 20:05 # 0
Я могу сделать git pull прямо на пляже и там же поправить строчку и запустить проект даже если до близжайшего сервера мне три дня дайлапом
----
Вы мечтаете об i5?
bormand 27.11.2014 20:08 # 0
P.S. Быть незаменимым хотя бы в одной области - очень и очень хуёво. На своей жопе испытал.
Анонимус 27.11.2014 20:11 # 0
Сам-то я на пляж не хожу, нечего мне там делать.
barbarbar 27.11.2014 20:11 # 0
Я не знаю, над какими проектами вы работаете, но в случае с битриксом или другими фреймворками, у которых большое кол-во файлов, экспериментальным путем у меня получилось, что с точки зрения ресурсов выгоднее иметь жирный сервер и тонкие клиенты.
defecate-plusplus 27.11.2014 20:10 # 0
они начинают толкаться, отсутствует версионность, бранчевание, присутствуют конфликты и одновременные редактирования одного файла, нельзя засчитать какие то отметки в развитии проекта за стабильные или минорные
один может зайти и всё удалить к чертям, ну или не удалить, сломать
у нас фронтендщики почему-то не гнушаются забирать всё что можно по проекту из гита, прямо из идеи запускать себе локальный томкат и отлаживаться со своей локальной версии - хотя ни строчки на жабе даже не пишут
возможно, потому что это одно действие мышкой
ну, файлов не 15к, на порядки меньше, но ведь и гит сливает только то, что отличается
почему в php+битрикс такая жопа...
bormand 27.11.2014 20:12 # 0
Не сгущай краски, Ди. У каждого разработчика своя домашняя директория со своим клоном проекта.
defecate-plusplus 27.11.2014 20:20 # 0
я просто невнимательный лошара
barbarbar 27.11.2014 20:15 # 0
Поэтому ваш вывод о жопе в битриксе и пхп основан на некорректной догадке. У меня почему-то именно в плане тонких клиентов жопа не наблюдается. Там есть жопы в другом, но это тема для другого разговора.
guest 28.11.2014 13:26 # 0
roman-kashitsyn 28.11.2014 10:52 # +2
Практически нигде больше такой ерунды не наблюдается. Во всех нормальных средах бинарники/исходники фреймворка чётко отделены от бинарников/исходников проекта.
Возможно, я просто что-то не осилил, но такая практика повергает меня в шок.
barbarbar 28.11.2014 13:06 # 0
У них большая проблема из-за политики обратной совместимости, но это бизнес, они не могут так спокойно отказаться от своих обязательств перед клиентами. За это, кстати, им большой плюс. В отличие от того же php, где с каждой новой версией на обратную совместимость забивают все больше.
guest 28.11.2014 13:28 # +4
RSLab 28.11.2014 17:24 # +2
ncuxonam 25.08.2021 08:03 # 0