Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Note: There is no official range of valid <integer> values. Opera 12.1 supports values up to 2^15 - 1, IE up to 2^20 - 1, and other browsers even higher. During the CSS3 Values cycle there was a lot of discussion about setting a minimum range to support: the latest decision, in April 2012 during the LC phase, was [-2^27 - 1; 2^27 - 1], but other values like 2^24 - 1 and 2^30 - 1 were also proposed. However, the latest spec doesn't specify a range anymore.
> !!!!!!!!important
Вот вы смеётесь, а мне такое реально пришлось писать.
В «Gitlab CI» шаги для сборки проекта (пайплайны) описываются декларативно в yaml-файлах. Чтобы не копипастить одно и то же общее говно в 100500 проектов, имеется возможно сделать #include другого файла (в том числе из других репозиториев): какие-то общие шаги (авторизация, подготовка окружений, сборка контейнера и прочее говно) выносятся в общую либу, которую можно просто подключить и течь.
Только вот есть одна беда: один и тот же файл подключить два раза нельзя — выдаётся ошибка о повторном инклуде. И всё было бы хорошо, если бы дубликаты не детектировались даже через несколько уровней индирекции: файлы B и C инклудят A, файл D инклудит B и C, «Гитлаб» посылает нахуй (да, diamond).
В ишшуе, открытом года два назад без каких-либо результатов (для «Гитлаба» это норма — там большинство ишшью таких), есть поистине великолепное решение: если к названию заинклуженного файла добавить слэш, то «Гитлаб» чудесным образом начинает считать, что это другой файл! Через такой великолепный воркэраунд проблема выше легко фиксится: файл B инклудит «/A.yaml», файл C инклудит «//A.yaml» — и теперь файл D может заинклудить B и C без каких-либо проблем!
В итоге в моём небольшом сборнике CI-говна имеется файл с великолепным «include "///////foo.yaml"».
Кстати, «Gitlab CI» — достаточно развитая декларативная система, поэтому там искаропки есть возможность прямо во время работы пайплайна сгенерировать башицей новое описание пайплайна и запустить его!
> important_when_customer_opens_site
Кстати, здесь как-то скидывали исходники хромого, где был захардкоженный список сайтов, которые нужно отображать немного "иначе"...
А ещё мне понравилось, что разработчики «Хромооперы» к своему поделию прикладывают файл «browser.js», в котором к списку исключений, зашитому в код «Хромиума», добавляется свой список, который можно обновлять без переконпеляции.
В IE в CSS можно было использовать функцию expression, аргументом которой писать выражение в духе js, которое пересчитывалось при каждом изменении любого свойства любого объекта.
Добавив в CSS пару-тройку expression, можно было устроить жуткие тормоза, когда даже после перемещения мышки всё висло.
Не уверена что у ВОЗ есть свои веб-разработчики (или там есть высоко компетентный техлид по вебу). Но !important-ы меня тоже раздражают (как и костылинг стилей через pattern matching - не юзер-плагин же пишем), убираю их везде где вижу. Нужно применить правило к любому чилду контейнера - пиши отдельную обертку для чилдов (в случае компонентов) или задай специальный BEM класс чилду.
Если надо задать позицию в поле/сетке конкретному чилду(ам), это делается на уровне поля/сетки, чтобы можно было чилда просто вставить и все. И не гадать че он так криво вставился. Это делается в т.ч. с помощью BEM классовых селекторов. Нужны селекторы для интеграционных тестов тестировщику - тоже по BEM-у именуешь.
Алсо с помощью BEM селекторов на прошлой работе кастомизировались компоненты и их отдельные части. В интерпрайзе бы назвали это кощунством и сказали делать на темах.
Алсо BEM не только про селекторы. Правило "компонент не должен управлять собственной позицией в сетке" - тоже часть BEMа. И т.д.
В любой достаточно большой компании есть какая-то самописная хуйня на которую смотришь и думаешь как она не сдохла 15 лет назад. А не сдыхает из-за какого-то техлида-самодура который эти же 15 лет там сидит
бывает еще так, что все согласны, что это говно и ненужно, но ни у кого нет достаточного количества яиц чтобы потратить месяц времени на выпил говна (и вероятно что-то сломать в трех соседних проектах еще при том)
> There’s a video somewhere in one of our talks of an Uber engineer typing a single line statement in Xcode and then waiting 45 seconds for the letter to appear in the editor slowly, one-by-one.
Apple обошли Жидбрейнс на поприще построения тормознутых IDE?
> our compiled code size was growing a rate of 1.3 mb a week.
Это пиздец.
При том, что XCodeвый парсер тупее Intellijеевского
Думаю, XCode не виноват: просто 1.3 mb a week возможно требовало 1.3 m lines of code per file
Чем больше я узнаю про убер, тем больше понимаю, что качество инструментов, процесс, и квалификация не имеют никакого отношения к коммерческому успеху, и пожалуй стоит снять шляпы перед менеджерами и маркетологами убера
Хотя я не прав: если программисты реально высирали 1.3 метра кода со скоростью одна буква в 45 секунд, но они очень крутые!
«Убытки американской компании Uber во II квартале 2019 г. достигли $5,2 млрд, следует из ее отчетности. Это рекордные квартальные убытки для Uber, пишет The Wall Street Journal.»
> But the general feeling of the architecture team was that most of Swift’s problems centered around the flakiness of the Objective-C interop back then so if we wrote a pure Swift app we could avoid the major issues
Не смогла
Видимо, изначальное качество было настолько ошеломляющим, что всё равно пришлось бы переписывать с нуля похуй на чём
Игры иногда весят очень мало, НО включают в себя возможность докачать всякий ебучий контент либо отдельно, либо в процессе установки, минуя ограничение. Как PUBG mobile, моя любимая игра.
Я знал питуха, который какое-то тормозящее вебджаваговно перевел с одного шаблонизатора на другой. Год переводил. Почему-то лучше не стало. Оказалось, что он не делал бенчмарков и ничего не профайлил, но где-то слышал, что один шаблонизатор быстрее другого. Вроде его уволили в конце, но год просрать он успел
Вообще у нас тоже иногда делают бессмысленные телодвижения, но это стараются пресекать в первые несколько месяцев.
Скорее всего да. Обычно вебговно тормозит от N+1 в базе.
Код конечно тоже может тормозить, но хорошо прогретая и проджитенная джава чтобы тормозила так, что веб (а не десктоп) приложению стало реально плохо, это нужно наверное задачу комивояжора решать, не знаю
ну он обещал сделать приложение продакшен реди, и не сделал. В конторе как-то ему доверились, и не следили, и он говорил "вот уже сейчас доделаю скоро", а через год не сделал
> The android folks at the time were big RxJava fans, and there was an equivalent RxSwift library that took advantage of the functional programming paradigms in Swift. Seemed straightforward
guest # 0
ObeseYoung # 0 ⇈
HO9I6PbCKuu_neTyx # 0 ⇈
guest # 0
HO9I6PbCKuu_neTyx # 0
rotoeb # 0 ⇈
[email protected] # 0 ⇈
Непонятно, значит «обрати внимание важно» или «не важно».
bormand # 0 ⇈
ObeseYoung # 0 ⇈
bormand # 0 ⇈
bormand # 0 ⇈
1024-- # 0 ⇈
bormand # 0 ⇈
1024-- # 0 ⇈
https://developer.mozilla.org/en-US/docs/Web/CSS/z-index
ObeseYoung # 0 ⇈
А так-то там весело:
Note: There is no official range of valid <integer> values. Opera 12.1 supports values up to 2^15 - 1, IE up to 2^20 - 1, and other browsers even higher. During the CSS3 Values cycle there was a lot of discussion about setting a minimum range to support: the latest decision, in April 2012 during the LC phase, was [-2^27 - 1; 2^27 - 1], but other values like 2^24 - 1 and 2^30 - 1 were also proposed. However, the latest spec doesn't specify a range anymore.
Я считаю, что надо еще одну конференцию созвать.
bormand # 0 ⇈
ObeseYoung # 0 ⇈
3_dar # 0 ⇈
CHayT # 0 ⇈
ISO # 0 ⇈
Вот вы смеётесь, а мне такое реально пришлось писать.
В «Gitlab CI» шаги для сборки проекта (пайплайны) описываются декларативно в yaml-файлах. Чтобы не копипастить одно и то же общее говно в 100500 проектов, имеется возможно сделать #include другого файла (в том числе из других репозиториев): какие-то общие шаги (авторизация, подготовка окружений, сборка контейнера и прочее говно) выносятся в общую либу, которую можно просто подключить и течь.
Только вот есть одна беда: один и тот же файл подключить два раза нельзя — выдаётся ошибка о повторном инклуде. И всё было бы хорошо, если бы дубликаты не детектировались даже через несколько уровней индирекции: файлы B и C инклудят A, файл D инклудит B и C, «Гитлаб» посылает нахуй (да, diamond).
В ишшуе, открытом года два назад без каких-либо результатов (для «Гитлаба» это норма — там большинство ишшью таких), есть поистине великолепное решение: если к названию заинклуженного файла добавить слэш, то «Гитлаб» чудесным образом начинает считать, что это другой файл! Через такой великолепный воркэраунд проблема выше легко фиксится: файл B инклудит «/A.yaml», файл C инклудит «//A.yaml» — и теперь файл D может заинклудить B и C без каких-либо проблем!
В итоге в моём небольшом сборнике CI-говна имеется файл с великолепным «include "///////foo.yaml"».
guest # 0 ⇈
ISO # 0 ⇈
Кстати, «Gitlab CI» — достаточно развитая декларативная система, поэтому там искаропки есть возможность прямо во время работы пайплайна сгенерировать башицей новое описание пайплайна и запустить его!
CHayT # 0 ⇈
http://govnokod.ru/27560
Reject modernity
Embrace tradition
Desktop # 0 ⇈
important - можно болт забить
...
iMPorTAnt - так и быть, применим в 45% случаев
...
IMPORTANT - тут уже не отвертишься
Stallman # 0 ⇈
Desktop # 0 ⇈
important_when_customer_opens_site
bormand # 0 ⇈
Stallman # 0 ⇈
Кстати, здесь как-то скидывали исходники хромого, где был захардкоженный список сайтов, которые нужно отображать немного "иначе"...
HO9I6PbCKuu_neTyx # 0 ⇈
1024-- # 0 ⇈
ObeseYoung # 0 ⇈
?important
guest # 0 ⇈
https://en.cppreference.com/w/cpp/language/lookup
bormand # 0 ⇈
j123123 # 0 ⇈
bormand # 0 ⇈
[email protected] # 0 ⇈
bormand # 0 ⇈
Desktop # 0 ⇈
HO9I6PbCKuu_neTyx # 0 ⇈
$= означает найти образец в конце строки.
bormand # 0 ⇈
HO9I6PbCKuu_neTyx # 0 ⇈
В IE в CSS можно было использовать функцию expression, аргументом которой писать выражение в духе js, которое пересчитывалось при каждом изменении любого свойства любого объекта.
Добавив в CSS пару-тройку expression, можно было устроить жуткие тормоза, когда даже после перемещения мышки всё висло.
bormand # 0 ⇈
JaneBurt # 0 ⇈
guest # 0 ⇈
JaneBurt # 0 ⇈
guest # 0
Marshall Шляпа вязаная для хорьков, розовая. 50 ₽
Купить за 50 ₽. 50 р.
bormand # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
Впрочем, хорьки и правда злые и кусучие. Из куньих хорошо приручаются ласки и выдры
HO9I6PbCKuu_neTyx # 0 ⇈
guest # 0 ⇈
Но в целом да, они почти все безбашенные
В Японии у чувака живут домашние выдры
https://www.youtube.com/watch?v=XJuAPGK3iOU
bormand # 0 ⇈
Да эти двое вообще ёбнутые на голову, на стаю хищников могут кинуться запросто...
ObeseYoung # 0 ⇈
HO9I6PbCKuu_neTyx # 0 ⇈
Straiker # 0 ⇈
Desktop # 0 ⇈
guest # 0 ⇈
в госдупе сидит
JaneBurt # 0
guest # 0 ⇈
А неужели в мире shadow DOM, и всяких React и Angular2 до сих пор актуален BEM?
Как там борщик?>
JaneBurt # 0 ⇈
Алсо с помощью BEM селекторов на прошлой работе кастомизировались компоненты и их отдельные части. В интерпрайзе бы назвали это кощунством и сказали делать на темах.
Алсо BEM не только про селекторы. Правило "компонент не должен управлять собственной позицией в сетке" - тоже часть BEMа. И т.д.
bootcamp_dropout # 0 ⇈
guest # 0 ⇈
Так что может быть кто-то там и BEMит
bootcamp_dropout # 0 ⇈
guest # 0 ⇈
bootcamp_dropout # 0 ⇈
Убер год переписывал iOS приложение с objective C на свифт обосравшись раз 10 по пути https://twitter.com/StanTwinB/status/1336890442768547845?s=20
Desktop # 0 ⇈
guest # 0 ⇈
[email protected] # 0 ⇈
Apple обошли Жидбрейнс на поприще построения тормознутых IDE?
> our compiled code size was growing a rate of 1.3 mb a week.
Это пиздец.
guest # 0 ⇈
Думаю, XCode не виноват: просто 1.3 mb a week возможно требовало 1.3 m lines of code per file
Чем больше я узнаю про убер, тем больше понимаю, что качество инструментов, процесс, и квалификация не имеют никакого отношения к коммерческому успеху, и пожалуй стоит снять шляпы перед менеджерами и маркетологами убера
Хотя я не прав: если программисты реально высирали 1.3 метра кода со скоростью одна буква в 45 секунд, но они очень крутые!
Desktop # 0 ⇈
guest # 0 ⇈
хз правда плюс ли это
Desktop # 0 ⇈
С телефона неудобно гуглить, надо завтра смотреть
bormand # 0 ⇈
Desktop # 0 ⇈
Desktop # 0 ⇈
Мечта дефекейта
Desktop # 0 ⇈
Настоящий пиздец вот:
> We had 92 and counting.
У приложения из примерно семи экранов 92 зависимости.
guest # 0 ⇈
у свифта с обжси же интероп есть какой-то, почему нельзя новый код писать на свифте, а старый не трогать?
мы так на коко с жабы перелазим. Если бы мы всё с ноля переписали, то охуели бы
Desktop # 0 ⇈
Не смогла
Видимо, изначальное качество было настолько ошеломляющим, что всё равно пришлось бы переписывать с нуля похуй на чём
[email protected] # 0 ⇈
Если зависимости уровня left-pad, сотню набрать легко.
Desktop # 0 ⇈
Desktop # 0 ⇈
Yo dawg, мы встроили тебе приложение в приложение. Ой, а чо эта оно сто метров весит??
bormand # 0 ⇈
Desktop # 0 ⇈
bormand # 0 ⇈
Desktop # 0 ⇈
bormand # 0 ⇈
Desktop # 0 ⇈
Но я посмотрел, с 2019-го года уже нет лимита. Последнее ограничение было 200мб
JloJle4Ka # 0 ⇈
bormand # 0 ⇈
Desktop # 0 ⇈
JloJle4Ka # 0 ⇈
JloJle4Ka # 0 ⇈
[email protected] # 0 ⇈
Планшет с более чем одним USB выходом и встроенной клавиатурой?
bormand # 0 ⇈
Эээ... ну это ж не андроид с тысячами реально разных конфигов... Тут разве не достаточно потестировать на пяти-шести гейфонах разных поколений?
guest # 0 ⇈
bormand # 0 ⇈
Теперь сравни с открытым множеством андроидов. Пока ты пилишь код, дядюшка Ляо выпустил ещё одну модель с 4к экраном, гигом памяти и телеприёмником.
Desktop # 0 ⇈
Мы взяли Свифт и начали выбрасывать фишки языка, ведь именно для этого мы начали переписывать всё с objc
Desktop # 0 ⇈
Учитесь, дети, как правильно говорить «я гонял JSON по вебсокетам»
Desktop # 0 ⇈
> A bunch of people got promoted
и эти питухи даже не стесняются толкать эту дичь в свитере
bormand # 0 ⇈
Desktop # 0 ⇈
«Если бы мы вовремя не обосрались, то нас бы уволили за отсутствием работы»
guest # 0 ⇈
Вообще у нас тоже иногда делают бессмысленные телодвижения, но это стараются пресекать в первые несколько месяцев.
bormand # 0 ⇈
guest # 0 ⇈
freemaker переводил на velocity или наоборот, не помню
не суть важно
bormand # 0 ⇈
guest # 0 ⇈
Код конечно тоже может тормозить, но хорошо прогретая и проджитенная джава чтобы тормозила так, что веб (а не десктоп) приложению стало реально плохо, это нужно наверное задачу комивояжора решать, не знаю
Desktop # 0 ⇈
JloJle4Ka # 0 ⇈
Desktop # 0 ⇈
guest # 0 ⇈
ObeseYoung # 0 ⇈
CHayT # 0 ⇈
(mildly NSFW)
bormand # 0 ⇈
Desktop # 0 ⇈
Прочитал как NSHipster
bormand # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
https://github.com/vition/phpider
ну и пидор и есть
gEKA6PbCKuu_nemyx # 0 ⇈
guest # 0 ⇈
В языках для менее умных -- нет
bormand # 0 ⇈
В пыхе не работает?
З.Ы. Хотя это не совсем эквивалент.
guest # 0 ⇈
> это не совсем эквивалент.
чому?
bormand # 0 ⇈
guest # 0 ⇈
gEKA6PbCKuu_nemyx # 0 ⇈
isset — это не вызов функции, а синтаксический сахар.
bormand # 0 ⇈
А если собачку добавить?
JaneBurt # 0 ⇈
Не упадет но будет восстание машин...
guest # 0 ⇈
> А проверка isset($param['cookie']) позволяет коду не упасть.
пых сделан имбецилами и для имбецилов
факт!
gEKA6PbCKuu_nemyx # 0 ⇈
guest # 0 ⇈
Просто в этих языках можно сказать например
а в пыхе так нельзя не дублируя "petuh"?
gEKA6PbCKuu_nemyx # 0 ⇈
Готового getOrDefault в стандартной библиотеке пышечки я не нашёл.
bormand # 0 ⇈
guest # 0 ⇈
в JS "II"
в коко элвис
JaneBurt # 0 ⇈
CHayT # 0 ⇈
Desktop # 0 ⇈
Реквестирую аккаунт peaktuBHblu_neTyx