Вы видите копию треда, сохраненную 7 апреля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
@
МЕНЕДЖЕР КАК БЫ НЕВЗНАЧАЙ СПРАШИВАЕТ СТАТУС
@
ОТВЕЧАЕШЬ - ПОКА НЕ НАШЁЛ ПРИЧИНУ БАГА
@
СПРАШИВАЕТ - СКОЛЬКО ВРЕМЕНИ ЗАЙМЁТ ПОФИКСИТЬ?
@
ТАК И ХОЧЕТСЯ ПОСЛАТЬ ЕГО НАХУЙ СО СЛОВАМИ, ЧТО ТЫ НЕ ВАНГА
@
ПОЛЕТЕЛА ВИНДА / СЛОМАЛСЯ КОМП
@
ЛЕГЧЕ НАЙТИ НОВУЮ РАБОТУ, ЧЕМ ВОСКРЕСИТЬ ПРОЕКТ НА НОВОЙ МАШИНЕ
@
НАШЕЛ И ПОФИКСИЛ БАГ ЗА ЧАС
@
НИКТО НИЧЕГО НЕ ЗАМЕТИЛ
НА ЗАДАЧУ ВЫДЕЛИЛИ 4 ЧАСА
@
ДЕЛАЕШЬ ЕЕ ТРЕТИЙ ДЕНЬ
@
РРРЯЯЯ СЫЧ СРОКИ СРЫВАЕШЬ
Жиза
> НА ЗАДАЧУ ВЫДЕЛИЛИ ДВА ДНЯ
> @
> НАШЕЛ И ПОФИКСИЛ БАГ ЗА ЧАС
> @
> НИКТО НИЧЕГО НЕ ЗАМЕТИЛ
@
ОСТАВШИЕСЯ 2 ДНЯ ДЕЛАЕШЬ ВИД, ЧТО РАБОТАЕШЬ
@
АНТИБУГУРТ
Пью эту же парашу только в бутылках просто потому что нравится вкус.
Большую часть спринта пинал хуи, а скоро ДЕМО
@
ИЗ-ЗА ЭТОГО ЛОМАЕТСЯ КОД ВАШЕЙ КОМАНДЫ
@
БАГ ВЕШАЮТ НА ТЕБЯ ПОТОМУ ЧТО ТЫ 5 ЛЕТ НАЗАД ЧЁ ТО ТАМ КОВЫРЯЛ
@
ЛАЗАЕШЬ ПО КИШКАМ ЧУЖОГО КОДА, ПЫТАЯСЬ УГАДАТЬ КАК ОНО ВСЁ РАБОТАЕТ, НЕ ЗАПУСКАЯ
будни энтерпрайза
Кстати да - вкус охуенный. Раньше пил динамит просто потому, что он был самый дешёвый. Потом попробовал ананас с манго и подсел на этот вкус
@
СМОТРИШЬ, ПРИКИДЫВАЕШЬ
@
ХУЙНЯ, ТАМ НА ПОЛДНЯ РАБОТЫ
@
КАПЧУЕШЬ ВЕСЬ ПЕРВЫЙ ДЕНЬ, ЗАДАЧУ ДАЖЕ НЕ ОТКРЫВАЛ
@
УТРОМ ТИМЛИД ГОВОРИТ, ЧТО НАДО ЗАДАЧУ НА ДРУГОГО ПЕРЕКИНУТЬ, А ТЕБЕ ВЗЯТЬ СРОЧНУЮ ЗАДАЧУ
@
ТРЕБУЕТ ЗАПУШИТЬ КОММИТЫ В ОТДЕЛЬНУЮ ВЕТКУ
@
ИЗ ОЧКА ВЫТЕКАЕТ ЧТО-ТО ЖИДКОЕ
РЕВЬЮ ДЕЛАЮТ ДВЕ НЕДЕЛИ ССЫЛАЯСЬ НА РЕШЕНИЕ ПРОБЛЕМ С ПАЙПЛАЙНОМ
Раньше когда удаленно приходилось работать, например для ночных работ, подключались по rdp, а теперь нам в связи с массовым переводом на удаленку сделали подключение через какую-нибудь тормозящую залупу, напичканную анальными зондами. Которая стучит майору иб-шнику даже когда буфер обмена юзаешь.
Я ору, когда подобные меры безопаности применяют к айтишникам. На уровне "отключил флешки - мам я безопасник".
Если айтишник знает про существование DLP и захочет слить что-то, он придумает десяток способов слить это так, чтобы не запалили.
И ладно бы эта параша работать не мешала, но она мешает.
НА УДАЛЁНКЕ
@
УХОДИТ В ОТКАЗ ПО ПРИЧИНЕ ПОШЕЛ НАХУЙ
@
ХОРОШИЕ РАЬОТНИКИ
@
ВАНЕК ВОЗЬМИ ЗАДАЧУ ВАЖНАЯ ОЧЕНЬ
@
СМОТРЕШ
@
ОЦЕНИВАЕШ
@
ВРОДЕ ТУТ ХУЙНЯ ЗА ЧАС СДЕЛАЮ
@
"ДА МИХАЛПАЛЫЧ ПОНЯЛ ТУТ НА ДЕНЬ, В ПОНЕДЕЛЬНИК НА ММТИНГЕ ОТЧИТАЮСЬ
@
В ПОНЕДЕЛЬНИК УТРОМ ЛЕНИВО НАКИДЫВАЕШЬ ИЗМЕНЕНИЙ
@
КОМПИЛИШЬСЯ 70 МИНУТ, НАВЕРНОЕ ОПЯТЬ ПЕРЕД АУДИТОМ ЗАБЛОКИРОВАЛИ МНОЖИТЕЛЬ НА МЕЙНФРЕЙМЕ
@
ЕБНУЛОСЬ 1488 ЮНИТ ТЕСТОВ
@
ДО МИТИНГА 20 МИНУТ, С ЛЯЦОМ ЛЯГУШКИ ПОСМАТРИВАЕШЬ В СТОРОНУ ПЕРЕГОВОРКИ
@
ЗАЛУПАСОФТ
Вот серьезно, зачем лол аутсос галере так вот напрямую врать про продуктовую разработку
ОТРЕДАКТИРОВАЛ ЛИНТЕРОВ КАКОЙ-ТО КУСОК СТАРОГО КОГДА
@
НАПИСАЛ ПАРУ РАЗМЫТЫХ КОММЕНТАРИЕВ
@
ЗАПУШИЛ
Экспортный продукт.
Тоже интересно. Кому нахуй нужна эта продуктовая разработка?
@
НИКТО НИЧЕГО НЕ ПИШЕТ
@
РЕШАЕШЬ ПОФАПАТЬ
@
КАЖДУЮ ФРИКЦИЮ СОПРОВОЖДАЕТ ПИЛИКАНИЕ МЕССЕНДЖЕРА
Блядь, собеседовался в эту компанишку пару лет назад, сидело значит три бабцы, техспец, погонщица, хрюша и ещё одна была в самом начале но съебалась сразу после того как представилась. Пытались продавить меня по зп классическим финтом из 00-ых, мол ой ну у вас вот конкретно в этой штуке я вижу конкретно пиздец она это слово вставляла в каждое предложение опыта маловато а это вот ну именно конкретно то что мы ожидаем от специалиста, спрашивали что-то как относитесь к джунам, к ТЕСТИРОВЩИКАМ, лол, ну ещё там были какие-то хитровыебанные вопросы по теории эджайла, не вспомню конкретно, но такое услышишь и сразу поймёшь что задают тупо двадцаточку-тридцаточку с тебя скинуть. Пизданутое у них самомнение конечно, но я сдержался и не стал грубить прям тогда, но порофлил вскользь с того что у меня скорее всего опыта на тот момент было как у двух этих бабец вместе.
ДЕЛАЕШЬ СВОЙ ПРОЭКТ ИГРУ МЕЧТЫ
@
РЕШАЕШЬ СДЕЛАТЬ ДЛЯ НАЧАЛА ТЕХНОДЕМКУ С МИНИМУМОМ КОНТЕНТА
@
ПИЛИШЬ, ГОВНОКОД УЖЕ ВЫЛАЗИТ ИЗ РЕДАКТОРА
@
ВЫКЛАДЫВАЕШЬ, ВРОДЕ НАРОД ОЦЕНИЛ, СПРАШИВАЕТ КОГДА БУДЕТ ГОТОВО
@
РЕШАЕШЬ ПЕРЕПИСАТЬ ПО-НОРМАЛЬНОМУ
@
В ПРОЦЕССЕ ПЕРЕПИСЫВАНИЯ ТЕРЯЕШЬ МОТИВАЦИЮ, НЕ СДЕЛАВ ДАЖЕ ПОЛОВИНЫ ОТ СТАРОЙ ДЕМКИ
@
ВЫКЛАДЫВАЕШЬ НА ГИТХАБ С НАЗВАНИЕМ "MY PET PROJECT GAME VERSION 0.0.2"
@
ДАЕШЬ ССЫЛКУ В РЕЗЮМЕ
@
ПРОДЖЕКТ МЕНЕДЖЕР КАЖДЫЙ ЧАС СПРАШИВАЕТ "ГОТОВО? А ТЕПЕРЬ ГОТОВО? А СКОРО БУДЕТ ГОТОВО?"
@
ВСЕ ОЧЕНЬ СЛОЖНО, КАЖДЫЙ ДЕНЬ ОСТАЕШЬСЯ ПОСЛЕ РАБОТЫ
@
РАЗОБРАЛСЯ, СТАЛО ЛЕГЧЕ
@
ВТОРОЙ ГОД РАБОТЫ — ПИШИ СЕРЬЕЗНЫЙ БЭК
@
НАУЧИЛСЯ В SQl, ЗАЕБИСЬ ПОШЛО
@
ВОТ ТЕБЕ ДОСТУП К СЕРВЕРАМ, БУДЕШЬ ДЕПЛОИТЬ
@
РАЗОБРАЛСЯ, ПОНРАВИЛОСЬ
@
НА ТЕБЕ НОВИЧКОВ, СЛЕДИ ЗА НИМИ И УЧИ, ВСЕ РЕЕВЕСТЫ ПРОВЕРЯЕШЬ ТОЖЕ ТЫ
@
НАЧАЛ УСТАВАТЬ, НО ВРОДЕ БЫ СПРАВЛЯЕШЬСЯ
@
Я ТУТ ПОДУМАЛА, ЧТО ХОЧУ ПОКИНУТЬ КОМПАНИЮ, ПОЛ ГОДА ТЕБЕ НА ПОДГОТОВКУ К МОЙ ДОЛЖНОСТИ (CTO)
@
ШЕЛ 4Й ГОД РАБОТЫ, Я ДАЖЕ ХЗ БУГУРТ ЭТО ИЛИ АНТИБУГУРТ
ТЕБЯ ПРЕДУПРЕЖДАЮТ, ЧТО ЛУЧШЕ НЕ СОЗДАВАТЬ ДОЛГОЖИВУЩИЕ ФИЧЕБРАНЧИ, ПОТОМУ ЧТО ПОТОМ ЗАЕБЁШЬСЯ МЁРДЖИТЬ
@
ПИЛИШЬ ФИЧУ ДВЕ+ НЕДЕЛИ
@
ДОПИЛИЛ
@
СКРЕСТИВ ПАЛЬЧИКИ, РЕБЕЙЗИШЬ ДО ТЕКУЩЕГО MASTER'А
@
REBASING... DONE
@
АНТИБУГУРТ
Мне никогда не помогал ребейз. Если возникал мерж-конфликт, но и ребейз всегда завершался с ошибкой, и наоборот.
А что, конфликты можно разрешать как-то ещё кроме как вручную?
Необходимость рибейза явный признак того, что с процессом разработки что-то не так.
@
ПОЛУЧАЕТСЯ ПЯТЬ КОММИТОВ В ОБЩЕЙ СЛОЖНОСТИ НА 600 СТРОК, ПЛЮС ЕЩЕ 500 СТРОК ТЕСТОВ
@
ПОСЛЕ ПРОВЕРКИ ОТКРЫТО 2 ISSUE
ПОПРАВИЛ БАГУ, ПОМЕНЯВ 6 СТРОЧЕК И НАПИСАВ ТЕСТ НА 15
@
8 ISSUES
@
ИСПРАВЛЯЕШЬ
@
ФИКС НЕ АППРУВЯТ, ПУШТО ДРУГОЙ ЧЕЛ ПОФИКСИЛ ВМЕСТО ТЕБЯ В ДРУГОЙ ЗАДАЧЕ
>>03192
Долбаебы, перетирающие чужой код двойным мерждем, детекед. Можете даже публичные репы посмотреть, где такое же практикуется, постоянно перетирается какой-то кусок кода и ишью заводится снова. Сам принимал участие в обсуждении такого поведения в репе TypeScript.
> Необходимость рибейза явный признак того, что с процессом разработки что-то не так.
Просто конченный персонаж, небось ты еще и не понимаешь чем отличается ребейз от мерджа. Как таких на работу берут? Я только джунов таких брал, которые не понимали как пользоваться гитом.
@
РЯЯ, Я НЕ ПОНИМАЮ ЗАЧЕМ ЭТОТ ВАШ ДОКИР, И БЕЗ НЕГО ВСЁ НОРМАЛЬНО ДЕЛАЕТСЯ
>>01200
Надо общаться с соседней командой. Пусть объясняют как и что там работает.
>>01239
Хех, вангую тимлид тебя спалил и решил наказать.
>>01280
Прокрастинация это хуёво. У меня в какой-то период тоже была страшная прокрастинация, сейчас уже поменьше.
>>02495
Наверное оно и хорошо. Игор уже такой избыток, играть некому.
>>02923
@
ТЕСТЫ ПОПАДАЛИ
>>03192
Щито? Относительно конфликтов, что мерж, что ребейз, будет одна и та же хуйня. Необходимость? Да нет обычно никакой необходимости, я обычно накатываю ребейз если никто не видел ещё мой код или если коммиты этой ветки никуда не раскатывались. С линейной историей работать проще, особенно если припечёт почеррипикать.
>>03251
Какой интересный случай. Дай угадаю, у него фикс был намного проще, чуть ли не ванлайнер, и без костылей. А если твои тесты перенести на его код, они отработают?
@
ТРЕД LGTM
@
МОЖНО ВЫКАТЫВАТЬ
@
РЯЯ, Я НЕ ПОНИМАЮ ЗАЧЕМ ЭТОТ ВАШ ДОКИР, И БЕЗ НЕГО ВСЁ НОРМАЛЬНО ДЕЛАЕТСЯ
>>01200
Надо общаться с соседней командой. Пусть объясняют как и что там работает.
>>01239
Хех, вангую тимлид тебя спалил и решил наказать.
>>01280
Прокрастинация это хуёво. У меня в какой-то период тоже была страшная прокрастинация, сейчас уже поменьше.
>>02495
Наверное оно и хорошо. Игор уже такой избыток, играть некому.
>>02923
@
ТЕСТЫ ПОПАДАЛИ
>>03192
Щито? Относительно конфликтов, что мерж, что ребейз, будет одна и та же хуйня. Необходимость? Да нет обычно никакой необходимости, я обычно накатываю ребейз если никто не видел ещё мой код или если коммиты этой ветки никуда не раскатывались. С линейной историей работать проще, особенно если припечёт почеррипикать.
>>03251
Какой интересный случай. Дай угадаю, у него фикс был намного проще, чуть ли не ванлайнер, и без костылей. А если твои тесты перенести на его код, они отработают?
@
ТРЕД LGTM
@
МОЖНО ВЫКАТЫВАТЬ
Две виртуальных машины этому господину. Еще блядь дико бесит, когда эту хуйню тащат на FE - "ыыыы, а давайте заебошим в докере сборку фронта, ыыыы, а чо бы нет, ы". Пиздец дегроды.
>>03736
>>03763
ДРЕВНЯЯ ИНФРАСТРУКТУРА НА DEBIAN STRETCH
@
НА БИЛД-СЕРВЕРЕ В APT ДРЕВНЯЯ NODEJS
@
ФРОНТЫ БУГУРТЯТ, ХОТЯТ ПОСЛЕДНЮЮ LTS
@
НО САМИ ПОСТАВИТЬ НЕ МОГУТ , ВЕДЬ HOMEBREW ПРОСТА А APT СЛОЖНА
@
НАСТРАИВАЕШЬ ИМ СБОРКУ С ПОСЛЕДНЕЙ LTS
@
РАДУЮТСЯ
@
УЗНАЮТ, ЧТО СБОРКА ПРОИСХОДИТ В ДОКЕРЕ
@
>Докер это ебаная хуита как и кубернетс.
@
ЖИДКО ПЁРНУВ ЖРУТ ЧТО ДАЮТ
НАДО СОБРАТЬ DEB ПАКЕТ ДЛЯ ТЕСТИНГА И ПРОДАКШЕНА
@
ПРИХОДИШЬ К АДМИНУ, ЧТОБЫ ОБСУДИТЬ СПИСОК ЗАВИСИМОСТЕЙ ДЛЯ СБОРКИ НА МАШИНКЕ
@
"НЕ ХОЧУ, НЕ БУДУ СТАВИТЬ ВСЯКИЕ НОДЫ, ЭТО ВООБЩЕ НЕ МОЕ ДЕЛО"
@
СТАВИШЬ БЛОКЕР НА АДМИНА С КОПИЕЙ ВСЕХ НАЧАЛЬНИКОВ
@
СЛЫШИШЬ ВЗЛЕТ АДМИНА НА ЖОПНОЙ ТЯГЕ ИЗ ДРУГОГО ЗДАНИЯ
ни разу не было проблем с админами, в отличии от бесконечных скриптов для сборки deb пакета
>Надо общаться с соседней командой. Пусть объясняют как и что там работает.
Тут у меня даже мой собственный тимлид не хочет вводить меня в курс дела, объяснять как всё у нас работает, а ты про соседнюю команду. Тебе скажут - "у нас нет времени, ковыряй код самостоятельно".
О, да у вас там целое гнездо бездельников, которые и рассказать не могут чем занимались.
>@
>ТЕСТЫ ПОПАДАЛИ
@
ТЕСТЫ? КАКИЕ ТЕСТЫ? В ПРОЕКТЕ С 2009-ГО ГОДА НЕТ НИ ОДНОГО НОВОГО ЮНИТ-ТЕСТА
Правильно, только бездельники будут заниматься рефакторингом и написанием тестов!
> у него фикс был намного проще
Нет, он просто другой таск пилил, но в том же примерно месте, ну и поправил, получается. У него коммит потолще получился. Зато мои тесты он в итоге к себе в ветку перетащил
Ребейз это тот же самый мерж, только создаёт новые коммиты (=меняются хэши). Конфликты разрешаются точно так же. Вот из-за того что создаются новые коммиты, может быть жарено: кто-то отпочковался от твоей ветки или выкатил версию из твоей ветки, после ребейза он эти коммиты или продублирует у себя в ветке или не найдёт версию на которую надо откатить. Как правило, никто чужие фичебранчи не раскатывает и не трогает, более того, в некоторых конторах требуется сквошить ветку в один коммит и ребейзить, дабы легко было черрипикать и ревертить.
Наивысший приоритет задач в Jira, обычно ставят на очень строчные задачи, например, сломался какой-то очень важный функционал, либо вообще ничего не работает. Дальше идут critical, major, minor, trivial.
мимо
Нахуя мне докер если фронт заебись собирается без докера.
СТАВЯТ ОХУЕННО СРОЧНУЮ ЗАДАЧУ...
@
РАЗРАБОТАТЬ НОВУЮ УСЛУГУ, КОТОРАЯ ПРИНЕСЕТ ОХУЛИАРД ПИАСТР
@
ПИШЕШЬ ДВЕ НЕДЕЛИ
@
НА ВЫХОДНЫЕ ПМ УМОЛЯЕТ ПОРАБОТАТЬ
@
ШЛЕШЬ НАХУЙ
@
НА ТЕБЯ ВЫХОДИТ ЗАМЕСТИТЕЛЬ ГЕНЕРАЛЬНОГО ДИРЕКТОРА И ДАЖЕ ГЕНИАЛЬНЫЙ, ОБЕЩАЮТ ПРЕМИЮ
@
СОГЛАШАЕШЬСЯ И ЕБАШИШЬ КАК ТОВАРИЩЬ СТАХАНОВ
@
ВСЕ ГОТОВО
@
МЕЧТАЕШЬ КУДА ПОТРАТИШЬ ПРЕМИЮ
@
В ПОНЕДЕЛЬНИК НА СОВЕЩАНИИ ВСЕМ ПОХУЙ, ПОДНИМЕШЬ ВОПРОС МОЛ ФИЧА ГОТОВА МОЖЕМ ЗАЛИВАТЬ
@
ГОВОРЯТ "МОЛОДЕЦ СЫЧУШ, ПЛАНЫ НЕМНОГО ИЗМЕНИЛИСЬ ФИЧА УЖЕ НЕ НУЖНА"
@
ПРЕМИИ НЕ БУДЕТ.
ГЕНЕРАЛЬНЫЙ*
> Ребейз это тот же самый мерж, только создаёт новые коммиты
Может лучше доку почитать и не выдумывать? https://git-scm.com/docs/git-rebase
> меняются хэши
commits that were previously saved into the temporary area are then reapplied to the current branch
> кто-то отпочковался от твоей ветки или выкатил версию из твоей ветки, после ребейза он эти коммиты или продублирует у себя в ветке или не найдёт версию на которую надо откатить.
После ребейза пушат всегда с форсом, потому как ты писал выше, коммит-хеши поменялись.
> Как правило, никто чужие фичебранчи не раскатывает
Это от организации процесса зависит. Может у товарищей есть релизная ветка, которая просто какой-то коммит от девелопа. А потом еще туда коммиты прилетают, типо фиксов. Как тогда синхронизировать релизные ветки и девелоп?
> в некоторых конторах требуется сквошить ветку в один коммит
Это к ребейзу не относится, сейчас уже гитлаб умеет сквошить просто галочкой в интерфейсе.
> Как правило, никто чужие фичебранчи не раскатывает
Трогают, если одну фичу двое пилят одновременно.
> Ты похож на чат-бота
Ты только сильно не агрись, пройди курс по гиту, почитай доку и сразу станет проще. Все через это проходили, не ты первый, не ты последний.
> А, git flow сектант, понятно, вопросов нет.
Не знаю как ты делаешь такие выводы, но план действий я описал тебе выше.
> Если ты участвуешь в ветке, она для тебя не чужая, не?
Ты можешь не участвовать в ветке, но подтягивать оттуда изменения. Она в таком случае чужая тебе или нет?
> Если ты участвуешь в ветке, она для тебя не чужая, не?
Дело не в этом, а в том, что если двое сидят в одной фичеветке и один сделает ребейз и форс пуш, у другого всё сломается.
Токсичный, просто пиздец. С чего ты взял что я не знаю гит? От того что не как на экзамене, а упрощённо объяснил?
>>04495
Точно такой же ахуй можно получить если узнать что ветку уже помержили без тебя.
> ребейз и форс пуш
Страшилки-страшилочки. Мне теперь что, из-за того что существует rm -Rf --no-preserve-root / не пользоваться никогда rm? Да и для чего там форспуш, где я говорил про форспуш? Вроде бы речь только о ребейзе шла.
> Точно такой же ахуй можно получить если узнать что ветку уже помержили без тебя.
Да, но это ничего не сломает. Можно допушить новые коммиты в ту же ветку и смержить ещё раз.
> Страшилки-страшилочки
Нет. просто констатация факта. Выводы делай сам.
> Да и для чего там форспуш
А без него ничего ребейзнутое не запушится. Или ты не собираешься пушить, и делаешь пет-проект на локалхосте?
> А без него ничего ребейзнутое не запушится. Или ты не собираешься пушить, и делаешь пет-проект на локалхосте?
Может тебя теперь отправить читать доки? Открой для себя git pull --rebase к примеру.
Мерж норм. Я вообще не понял почему со мной стали спорить будто бы я предложил все вообще мержи заменить ребейзами. Пиздец, ещё в гугл читать отправили.
@
ПОЛУЧИЛ БУГУРТ
@
В БУГУРТ-ТРЕДЕ НА ДВАЧЕ
Да.
>Это к ребейзу не относится, сейчас уже гитлаб умеет сквошить просто галочкой в интерфейсе.
подробнее? видел такое тока в яндексе
НА ТЕБЯ ВЫХОДИТ ЗАМЕСТИТЕЛЬ ГЕНЕРАЛЬНОГО ДИРЕКТОРА И ДАЖЕ ГЕНИАЛЬНЫЙ, ОБЕЩАЮТ ПРЕМИЮ
@
ШЛЕШЬ НАХУЙ
@
НА ТЕБЯ ВЫХОДИТ ЗАКАЗЧИК И НА КОЛЕНЯХ УМОЛЯЕТ
@
ШЛЕШЬ НАХУЙ
@
НА ТЕБЯ ВЫХОДИТ ЖЕНА ЗАКАЗЧИКА ОБЕЩАЕТ ОТСОСАТЬ
@
СОГЛАШАЕШЬСЯ И ЕБАШИШЬ КАК ТОВАРИЩЬ СТАХАНОВ
@
УДАЛЯЕШЬ ПАПОЧКУ .GIT
@
ПЕРАКАЧИВАЕШЬ РЕПОЗИТОРИЙ
@
ДОВОЛЬНО УРЧИШЬ
git stash для таких мувов есть
Можно еще новый комп купить, на него склонить репу, хули
Ебать, надеюсь вы так тонко стебётесь
Все, что чуть сложнее "гит коммит, гит пуш", не является безумным умением, я тебе скажу.
@
СУБД ЖИДКО ПУКНУВ ОБВЕШИВАЕТСЯ ЛОКАМИ
@
ПРОЦЕССОР НАБИРАЕТ ТЕМПЕРАТУРУ ВМЕСТЕ С ТВОЕЙ ЖОПОЙ
@
ТЫ Ж ПРОГРАММИСТ
@
ПОСОВЕТУЙ ЯЗЫК ПРОГРАММИРОВАНИЯ ДЛЯ ВКАТА В АЙТИ
@
А ТЕБЕ ДЛЯ ЧЕГО?
@
МММГМ ЭЭЭЭ
@
НУ ТАМ ВЕБ? МОБИЛКИ? ИГРЫ ПИСАТЬ?
@
ЭМНМ ПУК СРЕНЬК
@
...
@
СОВЕТУЕШЬ ПИТОН
эх ты, надо было плюсы форсить лично я в таких случаях еще спрашиваю за азы информатики, а то некоторые теряются
Тащемта даже у Цукерберга заклеена.
@
ПОСТУПИЛ В УНИВЕР
@
НА ПЕРВОМ КУРСЕ ОДНОГРУППНИКИ С ТЕБЯ ПРОИГРЫВАЮТ
@
НА ТРЕТЬЕМ КУРСЕ НАЧИНАЮТ ЗАКЛЕИВАТЬ КАМЕРУ САМИ
А микрофон не отключаете вне разговоров? А целиком тилибон не вырубаете вне времени использования? А АКБ не извлекаете? Кондюки не сушите после изъятия АКБ?
Если ничего из вышеперечисленного не выполняете - хуйня ваша договоренность по безопасности.
В чём бугурт-то?
ДЕЛАЕШЬ ИНТЕГРАЦИЮ СО СТОРОННЕЙ СИСТЕМОЙ
@
СРОКИ 2 ДНЯ
@
ОФ ДОКУМЕНТАЦИЯ API НЕ СОВПАДАЕТ С ПРИМЕРАМИ КОДА
>надо было плюсы форсить
>за азы информатики
Пидор блядь конченый.
Я новичкам всегда подсказываю какие технологии и фреймворки нужно учить и что сейчас в тренде, плюсы и прочую хуиту я не советую сейчас учить, нахуй не нужно.
Твои блядские плюсы и азы информатики нужно учить годами, новичок может выучить например пхп за 2 месяца и начать поднимать кеш.
>новичок может выучить например пхп за 2 месяца и начать поднимать кеш
А потом мы получаем на переписывание говно на битриксе
>Я новичкам всегда подсказываю какие технологии и фреймворки нужно учить и что сейчас в тренде
Твой совет ещё хуже лол.
Жабаскрипт коммюнити оно такое
Я не питонопетух, мне похуй.
Ты у мамы взрослый мальчик.
НА ЛЮБЫЕ ЗАПРОСЫ СТОРОННЯЯ СИСТЕМА ВОЗВРАЩАЕТ ОТВЕТ СО СТАТУСОМ 200
@
КРОМЕ СЛУЧАЕВ, КОГДА НЕ ВОЗВРАЩАЕТ
@
СЛУЧАИ, КОГДА НЕ ВОЗВРАЩАЕТ, ОПИСАНЫ НА ИХ ДОХЛОМ ФОРУМЕ СОВЕРШЕННО ЛЕВЫМ ПОЛЬЗОВАТЕЛЕМ
Это бд. Удаляю прост из таблицы со связью еще с десятком таблиц, а те еще там связаны, и еще... А на это дело сверху индексы повешаны
Тебе ещё хорошо, что есть cascade delete, а то обычно сыпятся уебанские "ORA-999: Нарушено ограничение целостности: обнаружена порожденная запись".
Поясни за реляционные бд, зачем их использовать, когда есть nosql? Зачем колоться и грызть кактус с индексами, буферными таблицами и прочими нормализациями? Сам я не бекэнд, но каждый раз, когда гуру серверной разработки не могут воткнуть очередную таблицу или наоборот делают их больше положенного, отправляя на фронт кучу ненужной информации, я пребываю в недоумении.
Потому что разные структуры для разных вещей. Nosql тоже бывают разными.
У тебя вопрос уровня "зачем нужны вилки, если есть ложки, ведь ими можно и суп, и пюрешку есть"
Потому что sql в общем случае работают быстрее и занимает меньше места. Потому что иногда нужна связность данных.
>>07785
>Сам я не бекэнд
Ну вот, если не разбираешься, то не надо свое мнение глупое высказывать.
> Поясни за реляционные бд, зачем их использовать, когда есть nosql
Потому что реляционность придумали не от нехуй делать. Уже сто раз проходили - адепты nosql ебутся, ебутся с nosql, изобретают, изобретают велосипеды и в результате изобретают опять реляционные базы. Только велосипедно-костыльные из говна и палок
> или наоборот делают их больше положенного, отправляя на фронт кучу ненужной информации
> отправляя на фронт кучу ненужной информации
Тут уже вопросы к бэкам. Скорее всего они для экономии времени делают select * и выплёвывают тебе всё, что есть в выбранных таблицах. Попроси их выдавать тебе меньше полей, если ты так волнуешься за трафик пользователей. Вообще сейчас есть grapQL, который, насколько я знаю, позволяет выдавать только те поля, что тебе нужны.
Я считаю что програмистам нужно писать говно код что бы клиент больше тратился на разработку и что бы больше программистов поддерживали проект, а то вы блядь сделаете заебись а все сливки получает заказчик а вы потом месяцами ищете новые проекты, не надо так.
ДЕЛАЕШЬ СТАТИСТИКУ КОТОРАЯ СЧИТАЕТСЯ ПРИ НЕКОТОРЫХ ДЕЙСТВИЯХ
@
НУЖНО НА КАЖДУЮ НЕДЕЛЮ ПОКАЗАТЬ СРЕЗ ЭТОЙ СТАТИСТИКИ
@
С СОХРАНЕНИЕМ ИСТОРИИ, ЗАПРЕТОМ ОБНОВЛЕНИЙ ПРОШЛОГО
@
РЕШАЕШЬ ЧТО ТЫ САМЫЙ УМНЫЙ И ДЕЛАЕШЬ БЕЗ КРОНОВ
@
ОБНОВЛЯЕШЬ СТАТИСТИКУ НА КАЖДОЕ ДЕЙСТВИЕ ЧТОБЫ С НАСТУПЛЕНИЕМ СЛЕДУЮЩЕЙ НЕДЕЛИ ВСЕГДА БЫЛА ГОТОВА СТАТА ЗА ТЕКУЩУЮ
@
НЕСКОЛЬКО ИНСЕРТОВ/АПДЕЙТОВ ПО ДИАПАЗОНУ
@
ОПТИМИЗИРУЕШЬ ЧТЕНИЕ ДО ВЫБОРКИ ОДНОЙ ЕДИНСТВЕННОЙ СТРОКИ НА КАЖДУЮ НЕДЕЛЮ
@
РАДОСТНО УРЧИШЬ
@
ЗАКРЫВАЕШЬ ГЛАЗА НА МЕДЛЕННУЮ ЗАПИСЬ ПОГЛЯДЫВАЯ НА ХИТРЫЕ ИНДЕКСЫ ДЛЯ ПОИСКА ПЕРЕСЕЧЕНИЙ С ИНТЕРВАЛАМИ
@
ДЕМОТИВИРУЕШЬСЯ И ПРОКРАСТИНИРУЕШЬ
@
ТЕСТИРУЕШЬ ЗАПИСЬ ИЗ КОНКУРИРУЮЩИХ СОЕДИНЕНИЙ
@
ДЕДЛОК
@
ПЕРДОЛИШЬ SELECT FOR UPDATE
@
ДЕДЛОК
@
ПЕРДОЛИШЬ SELECT FOR UPDATE ПО ПОЛОВИНЕ ТАБЛИЦЫ
@
ДЕДЛОК
@
УЗНАЕШЬ ТЫСЯЧИ ПОДВОДНЫХ КАМНЕЙ В БАЗАХ ДАННЫХ
@
НАКОНЕЦ-ТО ЗНАЕШЬ КАК ПОВЕДУТ СЕБЯ ПАРАЛЛЕЛЬНЫЕ ТРАНЗАКЦИИ ИЗ КЛАССИЧЕСКОЙ ЗАДАЧИ С ПЕРЕВОДОМ ДЕНЕГ СО СЧЁТА НА СЧЁТ
@
АХУЕВАЕШЬ ОТ КОЛИЧЕСТВА НЕЯВНЫХ ВНУТРЕННИХ БЛОКИРОВОК ДАЖЕ НА САМЫХ ПРИМИТИВНЫХ ОПЕРАЦИЯХ
@
УЗНАЁШЬ ВСЁ ОБ УРОВНЯХ ИЗОЛЯЦИИ ТРАНЗАКЦИЙ
@
ПОНИМАЕШЬ ЧТО ВСЁ ЧТО ВЫШЕ READ COMMITTED НАХУЙ НЕ СДАЛОСЬ ДЛЯ ПОДАВЛЯЮЩЕГО БОЛЬШИНСТВА ПРОЕКТОВ
@
ПЕРДОЛИШЬ КОЕ-КАК ПОЧТИ ГЛОБАЛЬНУЮ ЯВНУЮ БЛОКИРОВКУ
@
РАБОТАЕТ
@
НЕУВЕРЕННО ВЫКАТЫВАЕШЬ НА СТЕЙДЖИНГ
@
МОЛИШЬСЯ ЧТОБЫ НА ПРОДЕ НЕ ТОРМОЗИЛО
@
ПОНИМАЕШЬ ЧТО ПРИДЁТСЯ РЕФАЧИТЬ И ПЕРЕОСМЫСЛЯТЬ ЗАДАЧУ
ДЕЛАЕШЬ СТАТИСТИКУ КОТОРАЯ СЧИТАЕТСЯ ПРИ НЕКОТОРЫХ ДЕЙСТВИЯХ
@
НУЖНО НА КАЖДУЮ НЕДЕЛЮ ПОКАЗАТЬ СРЕЗ ЭТОЙ СТАТИСТИКИ
@
С СОХРАНЕНИЕМ ИСТОРИИ, ЗАПРЕТОМ ОБНОВЛЕНИЙ ПРОШЛОГО
@
РЕШАЕШЬ ЧТО ТЫ САМЫЙ УМНЫЙ И ДЕЛАЕШЬ БЕЗ КРОНОВ
@
ОБНОВЛЯЕШЬ СТАТИСТИКУ НА КАЖДОЕ ДЕЙСТВИЕ ЧТОБЫ С НАСТУПЛЕНИЕМ СЛЕДУЮЩЕЙ НЕДЕЛИ ВСЕГДА БЫЛА ГОТОВА СТАТА ЗА ТЕКУЩУЮ
@
НЕСКОЛЬКО ИНСЕРТОВ/АПДЕЙТОВ ПО ДИАПАЗОНУ
@
ОПТИМИЗИРУЕШЬ ЧТЕНИЕ ДО ВЫБОРКИ ОДНОЙ ЕДИНСТВЕННОЙ СТРОКИ НА КАЖДУЮ НЕДЕЛЮ
@
РАДОСТНО УРЧИШЬ
@
ЗАКРЫВАЕШЬ ГЛАЗА НА МЕДЛЕННУЮ ЗАПИСЬ ПОГЛЯДЫВАЯ НА ХИТРЫЕ ИНДЕКСЫ ДЛЯ ПОИСКА ПЕРЕСЕЧЕНИЙ С ИНТЕРВАЛАМИ
@
ДЕМОТИВИРУЕШЬСЯ И ПРОКРАСТИНИРУЕШЬ
@
ТЕСТИРУЕШЬ ЗАПИСЬ ИЗ КОНКУРИРУЮЩИХ СОЕДИНЕНИЙ
@
ДЕДЛОК
@
ПЕРДОЛИШЬ SELECT FOR UPDATE
@
ДЕДЛОК
@
ПЕРДОЛИШЬ SELECT FOR UPDATE ПО ПОЛОВИНЕ ТАБЛИЦЫ
@
ДЕДЛОК
@
УЗНАЕШЬ ТЫСЯЧИ ПОДВОДНЫХ КАМНЕЙ В БАЗАХ ДАННЫХ
@
НАКОНЕЦ-ТО ЗНАЕШЬ КАК ПОВЕДУТ СЕБЯ ПАРАЛЛЕЛЬНЫЕ ТРАНЗАКЦИИ ИЗ КЛАССИЧЕСКОЙ ЗАДАЧИ С ПЕРЕВОДОМ ДЕНЕГ СО СЧЁТА НА СЧЁТ
@
АХУЕВАЕШЬ ОТ КОЛИЧЕСТВА НЕЯВНЫХ ВНУТРЕННИХ БЛОКИРОВОК ДАЖЕ НА САМЫХ ПРИМИТИВНЫХ ОПЕРАЦИЯХ
@
УЗНАЁШЬ ВСЁ ОБ УРОВНЯХ ИЗОЛЯЦИИ ТРАНЗАКЦИЙ
@
ПОНИМАЕШЬ ЧТО ВСЁ ЧТО ВЫШЕ READ COMMITTED НАХУЙ НЕ СДАЛОСЬ ДЛЯ ПОДАВЛЯЮЩЕГО БОЛЬШИНСТВА ПРОЕКТОВ
@
ПЕРДОЛИШЬ КОЕ-КАК ПОЧТИ ГЛОБАЛЬНУЮ ЯВНУЮ БЛОКИРОВКУ
@
РАБОТАЕТ
@
НЕУВЕРЕННО ВЫКАТЫВАЕШЬ НА СТЕЙДЖИНГ
@
МОЛИШЬСЯ ЧТОБЫ НА ПРОДЕ НЕ ТОРМОЗИЛО
@
ПОНИМАЕШЬ ЧТО ПРИДЁТСЯ РЕФАЧИТЬ И ПЕРЕОСМЫСЛЯТЬ ЗАДАЧУ
Двачую, graphql это рассос для фронта. Для бэка, правда, придется поебаться, особенно с мутациями
> РЕШАЕШЬ ЧТО ТЫ САМЫЙ УМНЫЙ И ДЕЛАЕШЬ БЕЗ КРОНОВ
> ОБНОВЛЯЕШЬ СТАТИСТИКУ НА КАЖДОЕ ДЕЙСТВИЕ
я бы тебе по ебалу дал за попытку такое в прод выкатить
Эвентуал консистенси наше всё?
Знаю, это то же, что и функциональность, и то же, что и фича. А если ты прочитал в какой-то умной статейке на хабре про маня-разницу между этими понятиями, то у меня для тебя плохие новости.
> Потому что sql в общем случае работают быстрее и занимает меньше места.
Пруфы будут? вроде как быстрее Redis'а ничего нет, а он nosql решение.
> Ну вот, если не разбираешься, то не надо свое мнение глупое высказывать.
ну вот, очередной гуру серверной разработки.
>>07805
> Потому что реляционность придумали не от нехуй делать
Да нет же, их придумали потому что считали, что строго математическое представление данных будет лучше, а потом начались денормализации, чтобы это говно хоть как-то работало и не тормозило. Знаю проекты, где используется MySql под большими нагрузками и там тупо несвязанные таблицы.
>>07811
> Вообще сейчас есть grapQL
Те беки, коих знаю я, очень завязывают внутреннюю логику на ответ конкретного endpoint, переписывать их - значит, переписывать все.
>Пруфы будут? вроде как быстрее Redis'а ничего нет, а он nosql решение.
От скорости нет толку, если данные могут проебаться
> считали, что строго математическое представление данных будет лучше
Ну так оно действительно лучше. Лет так 35 назад весь мир перекатился со всего что у них было на реляционную модель. Она на практике рвала всех по всем параметрам. Тогда ещё никто не болел хайлоадом головного мозга и пользователи не расстраивались из-за прогрузки мема больше чем за 500 миллисекунд.
@
ИЗ НИХ 2 ГОДА НА ТИМЛИДСКОЙ ПОЗИЦИИ
@
ЭТО ВСЕ, КОНЕЧНО, ХОРОШО, НО
@
ПРЕДСТАВЬТЕ, ЧТО У ВАС ЕСТЬ СТРОКА...
> Попроси их выдавать тебе меньше полей, если ты так волнуешься за трафик пользователей.
> Вообще сейчас есть grapQL, который, насколько я знаю, позволяет выдавать только те поля, что тебе нужны.
А поясни в чем фишка GraphQL? Ведь GraphQL подразумевает знание схемы БД.
GraphQL никак не связан с БД (напрямую). Это просто ещё один способ организации API, вроде REST/SOAP/gRPC. Особенность его в том, что у тебя нет фиксированных DTO, возвращаемых на каждое обращение, вместо этого ты пишешь graphql-запрос сам и в результате будет json соответствующей структуры (с ограничениями, наложенными схемой). А экономия трафика в том, что подобно sql ты запрашиваешь не все поля, а только те, что нужны тебе, и делаешь всё за один запрос, будто обратился к нескольким контроллерам одновременно.
мимо
@
НЕ МОЖЕШЬ НАЙТИ ПОДСТРОКУ В СТРОКЕ
@
ПОСЛЕ "МЫ ВАМ ПЕРЕЗВОНИМ" С ПЕПЕ-ФЕЙСОМ ВОЗВРАЩАЕШЬСЯ В ОФИС
@
ЗАДАЕШЬ ВОПРОСЫ С ИНТЕРВЬЮ ПОДЧИНЕННЫМ
@
ЧЕРЕЗ ДЖИРУ
@
ТЕСТИРОВЩИК СПРАШИВАЕТ, КАК ВОСПРОИЗВЕСТИ И ВСЁ ЛИ ПРАВИЛЬНО
@
ПРИХОДИТСЯ ВНИКАТЬ
И даже отсутствие аналога sql-ной звёздочки не спасает.
>а каждое обращение, вместо этого ты пишешь graphql-запрос сам и в результате будет json соответствующей структуры (с ограничениями, наложенными схемой). А экономия трафика в том, что подобно sql ты запрашиваешь не все поля, а только те, что нужны тебе, и делаешь всё за один запрос, будто обратился к нескольким контроллерам одновременно.
>
А как оно внутри устроено? graphql-прокладка налету преобразует SQL-запрос, выкидывая из него всё лишнее?
Бывало нечто похожее
На сколько я знаю - подобную прокладу тебе самому нужно будет написать, graphql это только АПИ-слой
Нет, вызываются только методы для вычисления указанных полей (эти методы реализуешьь сам), и если какое-то поле не указано, метод для него не вызовется. А будут ли дёргать эти методы sql - это уже твоё дело, graphql - это запросы к API, а не к БД.
Ну так для реста, соапа и прочего тоже специфические эндпоинты, котооые тоже пишутся вручную. Конечно же, нельзя просто взять и включить graphql парой строчек кода и потом юзать.
Впрочем, есть какие-то обёртки graphql над ORM, может, они и работают с базой автоматически, но не тыкал.
Пруф- устраиваешься на нормальный проект, а не хуйню, типа говносайтов. Приходит пора поддержки и аналитики и ваш носкуль сосет бибу.
ВНИКАЕШЬ В ЗАДАЧУ
@
ПРОБЛЕМА ВООБЩЕ В ДРУГОМ
@
БАГ БЫЛ НА САМОМ ДЕЛЕ ФИЧЕЙ ДЛЯ КЛИЕНТА
@
ЖИДКО ПУКНУВ РЕВЕРТИШЬ
У всяких Монг, Касандр и т.д. определенно есть своя ниша и своя задача, но, будьте честны - вы не гугл и не фейсбук делаете, у вас нет такой нагрузки и нет таких требований, где бы вы получили их преимущества, а мозгоебли получите - более чем достаточно.
>>09313
> аналитики
Ну тут хуй знает, кстати. На первых парах и малых данных можно для аналитических запросов и использовать основную бд, если это мускуль или позгря какая, но потом - зачастую все равно приходиться clickhouse какой-нибуть ставить.
ЕСТЬ КЕШ ЗАПРОСОВ К МУСКЛЕ
@
ХРАНИТСЯ В РЕДИСЕ
особенно пиздато было, когда запись в редисе как-то бьется, и из него возвращается хуйня
ПИЗДЕЦ.
Думаешь концепцию Провод Очки и расчет баблишка путем схлопывания ПроводОчек придумали просто так? Причем ещё задолго до появления радиоламп?
@
НИЧЕГО НЕ НАЙДЕНО
стандартная хуйня. И что такого, ведь этот кеш учитывает специфику приложения (должен бы).
Впрочем, из mariadb никто кеш не пытается выпилить. Многие говно приложения по-прежнему ускорятся этим кешем.
> данные персоонажей в мморпг
Там хранить нечего. То есть, данных конечно много, но они не взаимозависимы, можешь хоть в keyvalue сторадже хранить. Из всех операций которые тебе понадобятся это взять запись целиком по ключу, и перезаписать целиком по ключу. Можешь даже миграцию делать лениво, прямо в кортеже хранить версию формата, а при загрузке автоматически её превращать в новый формат.
Ну хуй знает, мне даже немного нравиться писать всякие хелпер-методы, хоть как-то отвлекаюсь от ебанутых требований заказчиков
Там все интересно, т.к. MMORPG-севрер - это процесс, который все держит в памяти, и периодически дампит на диск. Обычные подходы - держать все на диске, и сверху этого - прикрутить какой-то кэш - тут не работает, т.к. данных очень много, некоторые постоянно меняються, много запросов к этим данным, и что самое главное - очень жесткие требования к времени ответа. И при всем при этом - потеря большинства самых горячих данных (вроде текущего хп, мп, кулдаунов спелов, теймеров респавна мобов) - вообще не критичны.
Сколько бы ни было в игрушке объектов, они взаимодействуют лишь локально. Это сильно упрощает задачу. Каждый кусок может обсчитываться на отдельной тачке.
Но ведь другой работы не бывает. Айтищники, когда вы перестанете убегать от проблем?
А как Прославленный Единый Тормозящий Сервер Eve Online?
А как же Самая Крупная в Европе Нешардированная База им. Авито?
Подумой об этом.
> Но ведь другой работы не бывает.
Как это противоречит написанному тем аноном?
> когда вы перестанете убегать от проблем?
Сам-то почему тогда здесь? Иди работать по 16 часов 7 дней в неделю, раз уж так кайфуешь от коммерческой разработки.
>А как же Самая Крупная в Европе Нешардированная База им. Авито?
лол, пруфы?
не удивлён вообще, они там долбоёбы
Ну а ты умный. И только суровое стечение обстоятельств не дало тебе заработать все деньги мира.
Я не очень понимаю провОдочки, подозреваю это что-то вроде журналирования. Ответственно заявляю что если делать апдейты в фиксированном порядке, к примеру отсортировать по account_id, то транзакции с переводом денег со счёта на счёт будут корректно работать и без провОдочек, даже на read committed. Худшее что может случиться это какая-нибудь транзакция откатится по таймауту из-за перегруженности какого-нибудь аккаунта на обновления. Но учитывая что веб апи обычно используют ограниченный пул соединений, и уже сами по себе организуют очередь обработки, разве что притормаживать будет. ПровОдочка конечно поможет торможение слегка отсрочить, до пропускной способности инсертов, но имеет плохой эффект в виде возможности ненарочного кредитования (здесь уже read committed сыграет злую шутку).
Бля пиздец. Ну так в авито и хранить особо нечего, там проблемы разве что при переиндексации начнутся
@
В ИТОГЕ ТЫ ДНЕМ ПРОГРАММИРУЕШЬ
@
ВЕЧЕРОМ ПРОГРАММИРУЕШЬ
@
НА ВЫХОДНЫХ ДРУГ ПРИХОДИТ К ТЕБЕ И ПРОГРАММИРУЕТ
хранить у них много чего , но конкретно транзакционное ядро с баблищем - не шардированное и не надо.
@
Документация:_Ключевой_функционал_нейм_
@
TODO: ДОБАВИТЬ ДОКУМЕНТАЦИЮ))))
@
Last modified: 01.09.1939 by Дед техлида
бля обосрался
ДОЛГО РАЗБИРАЕШЬСЯ С КАКИМ-ТО КУСКОМ ГОВНА ВНУТРИ ПРОЕКТА
@
СПРАШИВАЕШЬ У ТЕХЛИДА, НАХУЯ НАМ ВИКИ, ЕСЛИ В НЕЙ НЕ ОПИСАНА ХУЙНЯ, С КОТОРОЙ ТЫ РАЗБИРАЛСЯ
@
ОЙ ПУК СРЕНЬК ТЫ РАЗОБРАЛСЯ, НАПИШИ В ВИКИ СТАТЬЮ, ТОГДА БУДЕТ))0
@
ЖИДКО ПУКНУВ СТАВИШЬ ЗАДАЧУ В БЭКЛОГ
> НАПИШИ В ВИКИ СТАТЬЮ
Всегда похуй было на конфлюенс, делать мне больше нечего, кроме как его строчить. Ограничиваюсь коротким комментом в джире для потомков.
Вот ещё про него
техлид - пузан за сорок в черной водолазке и черных брюках
@
обедаете (принемаете писчу)
@
техлиду звонят по работе
@
смотрет в телефон, улыбается, кладет перед собой, посматривает: то на тебя, то на телефон.
@
собираешься спросить будет ли он отвечать
@
"МОЖЕТ ОТВЕ..."
@
моментально срывает телефон со стола и подносит к уху
@
глубокий вдох сквозь зубы
@
"Кинотеатр."
@
ВКЛЮЧАЕШЬ
@
НЕ РАБОТАЕТ
@
"ДА МЫ ЛЕТ 5 НАЗАД ОТКЛЮЧИЛИ ЕГО, ВОТ СЕЙЧАС ПОТРЕБОВАЛОСЬ"
@
У ПОЛОВИНЫ СМЕНИЛОСЬ АПИ
@
ДРУГАЯ ПОЛОВИНА ПРОСТО СРЕТ РАНДОМНЫМИ ОШИБКАМИ
@
ПОФИКСИЛ ОДНУ ПОЛОВИНУ, ДЛЯ ВТОРОЙ НУЖЕН АККАУНТ РАЗРАБОТЧИКА В СОЦ СЕТЯХ
@
"СПРОСИ У ВАСИ"
@
"СПРОСИ У ПЕТИ"
@
"ДАННЫЕ ЕСТЬ У ПАРНЯ, КОТОРЫЙ ДВА ГОДА НАЗАД УВОЛИЛСЯ И НЕИЗВЕСТНО ГДЕ ОН"
@
ЖИДКО ПЕРНУВ, ПРОСИШЬ ТИМЛИДА ОРГАНИЗОВАТЬ АККАУНТЫ ИЛИ НАЙТИ ТОГО ПАРНЯ
@
СИНДРОМ ЭМОЦИОНАЛЬНОГО ВЫГОРАНИЯ
@
ОТ ОДНИХ ТОЛЬКО СЛОВ, ВРОДЕ "ДЭЙЛИ", "ДЖИРА", "БЭКЛОГ"
@
ОТ ОДНИХ ТОЛЬКО УПОМИНАНИЙ НАЗВАНИЙ ФИРМ КЛИЕНТОВ
@
ОТ ОДНИХ ТОЛЬКО ИМЁН КОЛЛЕГ
@
ХОЧЕШЬ РАЗНЕСТИ ВСЁ НАХООЙ, ПОЙТИ ЖИТЬ В ЛЕСУ, БОМЖЕВАТЬ, ЖИТЬ НА ПОСОБИЕ, ПРИТВОРИТЬСЯ ИНВАЛИДОМ
СИДИШЬ НА БОЛЬНИЧНОМ, СЛУШАЕШЬ ВАЙПЕРА
Тру стори.
@
ОТКРЫВАЕШЬ ДОКИ
@
ДОКИ В ВИДЕ .DOCX
@
НАПИСАННЫЕ КАНЦЕЛЯРИТОМ
@
ТИПЫ ОПИСАНЫ, НО В XSD
@
ПРИМЕРОВ КОДА НЕТ
@
ЗАТО ЕСТЬ РАМОЧКА ПО ГОСТУ
Бля. Двачую. Хата куплена, осталось немного собрать на новую тачку и перехожу надеюсь в режим низкого потребления бабла и работы по 10 часов в неделю
@
НАДО ЗАПИЛИТЬ НОВУЮ УСЛУГУ ДЛЯ ПОДКЛЮЧЕНИЯ НОВОГО КЛИЕНТА
@
ТИМЛИД ИЗ СОСЕДНЕЙ КОМАНДЫ НЕДОВОЛЬНО УРЧА НАЧИНАЕТ РЫТЬСЯ В СОТНЕ СТАРЫХ ПРОЕКТОВ
@
НАХОДИТ НАИБОЛЕЕ ПОДХОДЯЩИЙ И НЕ ТАКОЙ ТУХЛЫЙ
@
КОВЫРЯЕШЬСЯ, ПЫТАЯСЬ ПОНЯТЬ, ЧТО ПЕРЕДЕЛАТЬ
@
НИХУЯ НЕ ПОНИМАЮЩИЙ АНАЛИТИК НЕВЗНАЧАЙ ПОДСМАТРИВАЕТ В ЩЕЛЬ И СПРАШИВАЕТ, НУ ЧЕ ТАМ, РАЗОБРАЛСЯ?
@
ПРИ ПОМОЩИ МОЛИТВ И СОТОНЫ ПИЛИШЬ ХОТЬ ЧТО-ТО
@
ИНТЕГРАЦИЙ НЕ ЗАВЕЗЛИ, СЕРВАКОВ НЕТ, КАК НАСТРАИВАТЬ НИКТО НЕ ЗНАЕТ
@
КАК ТЕСТИРОВАТЬ ТОЖЕ НИКОМУ НЕ ИЗВЕСТНО
@
ЕЩЁ МЕСЯЦ НА НАСТРОЙКУ И ОТЛАДКУ
@
ОТЛАВЛИВАЕШЬ БАГИ В ПРОДЕ, ПОГЛЯДЫВАЯ НА ХХ.РУ
За это время проще было с нуля все написать
Я об этом же думаю.
>10 часов в неделю
Твой рабовладелец согласится на это или ты самозанятый бох? Мне бы двух дней в неделю тоже хватило на жизнь. Блять, пишу и понимаю, что тогда бы это реально была жизнь, а не как сейчас. Пиздос, посоны.
>>13419
ИМХО важно не число рабочих дней, а сколько часов ты в них работаешь. Для себя установил, что оптимальный ворк/лайф баланс при графике 6 часов 6 дней в неделю или 5 часов 7 дней в неделю. Если вставать рано и быстро всё заканчивать, то успеваешь столько же, сколько в обычную 40-часовую неделю, но при этом впереди остаётся целый день ежедневно.
Я фрилансер. На фрилансе онгоинг проекты в стадии поддержки, где достаточно 10 часов в неделю - обычное дело. На фирмах - хз, возможно ли такое. Может быть и можно найти
Вот пидор, написал бы лучше readme в корне директории или рядом с исходным кодом
В одной галере шеф совсем ебанулся и стал требовать заводить задачи в разных пространствах, типа, ресеч и чисто кодирование. Причем и там и там надо было проставлять часы, сначала планируемые, потом по факту.
Пиздец бля, долбоебы, до сих пор бомбит
Зато за 5 часов в день мозг и не успевает особо устать. Сам работаю 7 дней в неделю. Здесь плюс ещё и в том, что понедельник - такой-же день, как все, а не день, когда надо начинать работу после отдыха
А минус в том, что у тебя нет полноценного отдыха. Как минимум ты теряешь возможность делать какую-то долгую активность, типа выезд с друзьями с палатками на ночевку куда-то.
@
СДЕЛАЛ ВЕТКУ, СОБРАЛ КОММИТЫ
@
ТЕСТИРОВЩИКИ СМОТРЯТ, ГОВОРЯТ ЧТО ВСЁ ОК
@
ДЕНЬ РЕЛИЗА
@
"А ВОТ МЫ СМОТРЕЛИ И У НАС ЗАМЕЧАНИЯ ПО РЕЛИЗУ"
@
ПЕРЕНОСИШЬ ВРЕМЯ НА ЧАС
@
"А ДАВАЙТЕ ДОКИНЕМ ЕЩЕ ВОТ ЭТИ 10 ЗАДАЧ"
@
СМОТРИШЬ - ВРОДЕ ПРОСТЫЕ, ДОКИДЫВЕШЬ
@
"А ДАВАЙТЕ ЕЩЕ ВОТ ПАРУ"
@
ГОВОРИШЬ, ЧТО НЕТ, МАЛО ВРЕМЕНИ СМОТРЕТЬ, А ТАСКИ ТЯЖЕЛЫЕ
@
"МЫ ДОЛЖНЫ В ЭТОТ РЕЛИЗ, ЗАКАЗЧИК ОЧЕНЬ ХОЧЕТ"
@
ОТВЕЧАЕШЬ, ЧТОБ ШЛИ НАХУЙ ИЛИ ПУСТЬ САМИ РЕЛИЗ ПРОВОДЯТ
@
"МЫ НЕ МОЖЕМ ВЫКИНУТЬ ИХ, УЖЕ ВСЕ СОГЛАСОВАНО"
@
СО СГОРАЮЩИМ ПЕРДАКОМ И ПАДАЮЩИМИ ТЕСТАМИ, КОЕ-КАК ДОБАВЛЯЕШЬ ФИЧИ
@
РЕЛИЗ ЗАКАНЧИВАЕТСЯ К 12 НОЧИ
@
"ВСЕМ СПАСИБО, ВСЕ СЛАВНО ПОТРУДИЛИСЬ"
@
НОВЫЙ РЕЛИЗ ЧЕРЕЗ 14 ДНЕЙ
@
ВСЁ ПОВТОРЯЕТСЯ
@
СДЕЛАЛ ВЕТКУ, СОБРАЛ КОММИТЫ
@
ТЕСТИРОВЩИКИ СМОТРЯТ, ГОВОРЯТ ЧТО ВСЁ ОК
@
ДЕНЬ РЕЛИЗА
@
"А ВОТ МЫ СМОТРЕЛИ И У НАС ЗАМЕЧАНИЯ ПО РЕЛИЗУ"
@
ПЕРЕНОСИШЬ ВРЕМЯ НА ЧАС
@
"А ДАВАЙТЕ ДОКИНЕМ ЕЩЕ ВОТ ЭТИ 10 ЗАДАЧ"
@
СМОТРИШЬ - ВРОДЕ ПРОСТЫЕ, ДОКИДЫВЕШЬ
@
"А ДАВАЙТЕ ЕЩЕ ВОТ ПАРУ"
@
ГОВОРИШЬ, ЧТО НЕТ, МАЛО ВРЕМЕНИ СМОТРЕТЬ, А ТАСКИ ТЯЖЕЛЫЕ
@
"МЫ ДОЛЖНЫ В ЭТОТ РЕЛИЗ, ЗАКАЗЧИК ОЧЕНЬ ХОЧЕТ"
@
ОТВЕЧАЕШЬ, ЧТОБ ШЛИ НАХУЙ ИЛИ ПУСТЬ САМИ РЕЛИЗ ПРОВОДЯТ
@
"МЫ НЕ МОЖЕМ ВЫКИНУТЬ ИХ, УЖЕ ВСЕ СОГЛАСОВАНО"
@
СО СГОРАЮЩИМ ПЕРДАКОМ И ПАДАЮЩИМИ ТЕСТАМИ, КОЕ-КАК ДОБАВЛЯЕШЬ ФИЧИ
@
РЕЛИЗ ЗАКАНЧИВАЕТСЯ К 12 НОЧИ
@
"ВСЕМ СПАСИБО, ВСЕ СЛАВНО ПОТРУДИЛИСЬ"
@
НОВЫЙ РЕЛИЗ ЧЕРЕЗ 14 ДНЕЙ
@
ВСЁ ПОВТОРЯЕТСЯ
Жиза!
В чем бугурт? В том, что ставка всего лишь двойная или что просят в выходные и ты, омега, не можешь отказать?
@
СЛИВАЕШЬ В МАСТЕР
@
ТЕХЛИД ТРЕБУЕТ ДОБАВИТЬ ТЕСТЫ
@
ЗАВОДИШЬ В БЕКЛОГ ЗАДАЧУ НА НАПИСАНИЕ ТЕСТА
@
НАЧИНАЕШЬ ФИКСИТЬ СЛЕДУЮЩИЙ БАГ
А чё такого-то?)
И правильно. Большинство тех.лидов, коих я вижу в компаниях на собесах или уже после трудоустройства - очень недалекие и твердолобые люди, которые получили лычку тех.лида за какую-нибудь хуйню, коей пользоваться уже моветон.
Чувствую твою боль, у самого куча задач в беклоге на тесты. Всему руководящему составу похуй на них, главное фичи в продакшн толкнуть, получить похвалу от своих начальников и все по новой.
@
ДНЁМ
@
ВЕЧЕРОМ
@
ТОЛЬКО ЧТО СПРОСИЛ
@
Я ПОСМОТРЕЛ СПЕЦИАЛЬНО - У НЕГО СЕЙЧАС 5 ЧАСОВ НОЧИ
У меня менеджер такой. Утром встаёшь, смотришь, он всю ночь в емейле и слаке что то обсуждал
@
ЖДЕШЬ ДО УТРА
СДЕЛАЛ ТАСКУ К ЧЕТЫРЕМ ДНЯ
@
КОММИТИШЬ ЕЕ В 7 ВЕЧЕРА, ЧТОБЫ КОЛЛЕГИ НЕ ПОДУМАЛИ, ЧТО ТЫ ТРИ ЧАСА НИХРЕНА НЕ ДЕЛАЛ
А я стесняюсь играть днём на игровом сервере. Меня там все знают. Не хочу, чтобы подумали что у меня работы нет, и я весь день там просиживаю.
У нас на сервере также был один игрок, проводящий там дни напролёт. Просто массу времени сливал на это. Я было подумал - это кто-то, у кого в жизни какие-то проблемы, и он ушёл с головой в виртуальность.
Оказалось, это 65-летний старик на пенсии.
Потому что сами делают точно так же
КОММИТИШЬ В ПОЛНОЧЬ
@
ТИМЛИД ГОВОРИТ, ЧТО НЕЛЬЗЯ ПЕРЕРАБАТЫВАТЬ, ПОТОМУ ЧТО ТАК И ДО ВЫГОРАНИЯ НЕДАЛЕКО
Ротому что тимлид против траты времени на тесты
Тебе доплачивать за них не будут, а мозгоебли может добавиться на порядок, особенно если баг в самом тесте окажется.
ДЕЛАЕШЬ КОММИТ С КОММЕНТАРИЕМ "ЭТО ФИЧА, СМОТРИ ТИКЕТ 12345"
@
ЧЕРЕЗ 5 ЛЕТ ТЕБЕ СНОВА ПОРУЧАЮТ ПОФИКСИТЬ ЭТОТ БАГ
@
ВИДИШЬ ЗАГАДОЧНУЮ СТРОЧКУ "ЭТО ФИЧА, СМОТРИ ТИКЕТ 12345"
@
КОМПАНИЯ С ТОГО МОМЕНТА УЖЕ СМЕНИЛА ТРИ БАГТРЕКЕРА И ПРОСРАЛА ВСЕ ТИКЕТЫ
Как знакомо...
У нас вот в конторе есть огромные архивы электронной почты. Считается, что там лежат все материалы и дискуссии по развитию проекта. Кто что когда предлагал, какие фичи, и проч.
Дескать, хочешь ознакомиться с историей развития продукта - копайся в них.
По факту же, там откровенный бардак. Всякие обрывки информации, куски диалогов, беседы. Хуй поймёшь. Рыться там - уйдёт целый год, легко.
> УЖЕ ВСЕ СОГЛАСОВАНО
Почему без тебя согласовано? Это как вообще? Ты тимлид или хуйня из-под ногтей? Какого хера они продают ещё не готовые фичи со сроком _готово вчера_?
Я не тимлид. С чего ты это взял?
Нихуя себе, ты так долго в одной конторе проработал. Я только в Яндексе столько держался и то съебался с приходом императора.
>>17302
> Дескать, хочешь ознакомиться с историей развития продукта - копайся в них.
Мне, когда предлагают такое, я обычно вклюаю режим прокрастинации и начинаю методично ничего не делать. Советую. Отбивает желание разных тимлидов скидывать свои проблемы на подчиненных.
Конечно, можно. У меня тимлид периодически пишет, мол как не хорошо работать по ночам, мол выгорание и кококо. По факту, на утро он ебет всех по кругу вопросами почему такая-то хуйня еще не готова и как быстро она уйдет в продакшн.
Почему ещё никто для такой херни какой-нибудь ML не зделол? Который будет выфильтровывать неформальное общение и структурировать.
>Я только в Яндексе столько держался и то съебался с приходом императора.
Тоже там работал? Как с тобой побазарить можно тет-а-тет?
Интересно, что там происходило
Как такую херню сделать? Я когда читаю комменты в джире полугодичной давности, ощущаю себя человеком новой эпохи. Потому что половина проблем решилась сама собой, вторая половина проебалась, а те, кто мог бы хоть что-то по этой теме сказать, уже уволились. Получается, что переписки на 100+ писем неактуальны от слова совсем.
Кто-то один постит здесь свой публичный ключ с микропруфом что это он, второй используя этот публичный ключ кодирует свой контакт и постит. Первый расшифровывает этот контакт приватным ключом. ??? Профит!
Я сегодня у мамы криптограф.
Проще уже код коммита почитать. И если уж что-то напрочь забыли, значит не так уж оно было и важно.
> Тоже там работал? Как с тобой побазарить можно тет-а-тет?
Могу тут описать без перехода на личности, все равно тайной это не является. Если есть конкретные вопросы, то задавай.
Если вкратце, то император пришел делать ревью, которое стало плацдармом для кумовства и круговой поруки. Когда одни сидели шестидневку по 12 часов и получали на ревью C (средний показатель), другие не делали нихуя и получали D (выше среднего). Еще у тимлидов была возможность забирать часть ФОД себе и делать, что хочешь. Не напрямую, но всегда можно было зарезать кому-нибудь оценку и зарплату и повысить себе или другому сотруднику. Даже придумали перекрестный фидбек, когда тебя оценивают смежники, чтобы выставить честную оценку, по факту это ни на что не влияло и руководство ставило оценки как хотело.
С приходом императора в Яндексе появилось подсиживание, когда неугодных руководителей увольняли по первому требованию и на их место ставили тех, кто был в хороших отношениях с более высокими начальниками.
Сейчас все более менее стабилизировалось. Можно приходить на хорошую зарплату и надеяться на опционы. Даже оценивать могут честно. Главное, не метить в руководителя отдела или направления.
Но ведь с точки зрения бизнеса это действительно так. Ты должен показать ему новые фичи, а вместо этого говоришь, что занимался рефакторингом, юнит-тестами и вычищением TODO.
>ФОД
ФОД? Не знаю такой аббревиатуры. Может ФОТ?
>одни сидели шестидневку по 12 часов
Шестидневка по 12 часов? Что-то я не видел такого. Кто так работал?
Контора же, вроде не практикует авралы и переработки.
>Главное, не метить в руководителя отдела или направления.
О да! Ты только пришёл, и уже метишь в рук. отдела. Это каким кретином надо быть, чтоб строить подобные планы?
А так вообще...
Какая весёлая жизнь. Я был простым хуем, это всё мне было неизвестно. Оценки, правила распределения денег, кто там против кого интригует. Хотя я понимал, что там внутри всё бурлит. И всё происходит неспроста. Заговор молчания вполне чувствовался.
> Заговор молчания
Я не он, но видимо так уж исторически сложилось. В своё время сеошники душу готовы были продать за инсайд алгоритмов ранжирования.
>ты так долго в одной конторе проработал
Нет, просто для чистоты повествования бугурта. Но кейс, когда комментарий указывает на уже несуществующий тикет, у меня был.
Закладываешь в эстимейт написание тестов, пишешь тесты вместе с задачей.
Два года так, полет нормальный.
Я другой анон. Не пишу тесты, но весь код что пишу, тщательно тестирую вручную. Если нужно - под дебаггером. В эстимейты время на это закладываю.
Ежели ты будешь писать тесты и закладывать на это время, думаю к тебе будут вопросы на тему "а не занимаешься ли ты лишним делом, молодой человек?"
Как по мне, надо бизнесу активно внушать мысль, что программисты не только занимаются непосредственно фичами, но ещё у них есть housekeeping tasks. Которые включают в себя рефакторинг. Следует с осторожностью называть сроки написания фич. В них надо закладывать не только непосредственно написание, но и ещё поддержание кодовой базы в приличном состоянии.
Т.е. сроки из расчёта хуяк-хуяк и в продакшн - это зло.
У меня Яндекс оставил впечатление дурдома.
А ещё такой вопрос. Что там за история была, когда из Яндекса начали уходить старички? Вот помню на сайте висели фотки топ-менеджмента. На красном таком фоне. Их как-то все сняли с витрины. И лишь нынче снова повесили. Но там уже другие лица. И ща какая-то другая структура. Помню, тот же Мазуров (кажется так) был нач. деп. разработки, Фадеев (Мигель) нач. эксплуатации. Сейчас их там нет. Бахаревская в mail.ru перешла. Ушли ещё Колмановская, Тихончук, Садовский, Расковалов, Гершензон. Список можно продолжать. Некоторые даже начали катать статьи на публику в духе "После IPO Яндекс испортился, много политики, коллектив разрушился".
Что там происходило, что за политика? Что с коллективом?
Хз о чем ты, вся галера пишет тесты, менеджеры это понимают, это вообще не скрывается даже и не считается зазаорным. Считается зазорным не писать их.
Бля, двачую. Потом без тестов море багов, охуенно потом бизнесу слушать "ну, мы писали быстро, теперь разгребаем то, что писали хуева, зато быстра, нам же ж надо было вам что-то показывать"
В геймдеве обычно вообще никаких тестов не бывает.
Зависит от области.
Блядь, опять в выходной спрашивает статус. Я сказал ему, что поработаю на выходных. Но пошёл он нахуй - ничего не буду отвечать. Имею право не разговаривать по работе в выходной
Ну т.е. я надеялся спокойно поработать хоть в выходной, а этот пидор даже этого не даёт. Так и хочется дропнуть этот проект
Он нервничает, когда я мало тасков делаю на его проекте за неделю. Поэтому пообещал, чтобы он отстал. Я фрилансер, у меня сейчас есть более интересный второй проект с бОльшим рейтом и можно работать фулл тайм, меньше достают статусами.
Вообще работа в выходной для меня не проблема. Я тут писал >>13709
Не теряю. Могу больше поработать в будние дни или просто меньше сделать (и заработать) за неделю. Зависит от текущих тасков. На фрилансе график намного более гибкий, чем в конторе
Писать тесты и TTD - абсолютно разные вещи.
То, что ты там себе пропукиваешь проверки на нул после написания класса, не означает, что практикуешь тестинг-фёрст.
>>17568
>охуенно потом бизнесу слушать "ну, мы писали быстро, теперь разгребаем то, что писали хуева, зато быстра, нам же ж надо было вам что-то показывать"
Не поверишь, но да. Если есть море багов, то значит можно подчинённым мозг лишний раз поебать и заставить их больше РАБотать, а значит манагерам можно больше задачек в жире раскидать да и вообще процесс БУРЛИТ. И начальнику приятно смотреть на белок в колесе.
>>17648
Гейдев без тестов? Совсем ебобо? Там обычно целый штат макак набирают на тестирование. Просто из-за природы гейминга очень сложно написать автоматические тесты.
А я где-то писал, что я "пропукиваю" проверки после написания тестов? Жопочтец
>Не поверишь, но да.
Что правда, то правда. Люди дико иррациональны. Даже если сразу писать начисто объективно быстрее (по объективным измерениям), нежели чем писать тяп-ляп, а потом доводить до ума. Всё равно, начальник может быть склонен ко 2-му варианту. Это же нагляднее! Да и результат хоть плохонький, но есть быстро. Можно попробовать его в деле, посмотреть, дать фидбек.
Никто и не говорил писать тяп-ляп
Как будто что-то хорошее. Я понимаю стремиться к тому, чтобы быть долларовым миллионером. А техлидом - нахуй надо
Ты либо жс-макака либо борщехлеб
Это нормально, что я на работе в основном пинаю хуи, а 70% кода пишу из дома ночью и выходные?
Я - это ты
Неэффективные траты времени, вот что это.
Вместо того, чтобы тратить рабочее время на работу, ты на неё тратишь домашнее время. А больше, у тебя его ни на что не остаётся.
Хоть бы договорился бы об удалёнке. Чтобы приходить в офис только раз в неделю, а код писать в основном дома.
>Хоть бы договорился бы об удалёнке.
Анрил.
>Неэффективные траты времени, вот что это.
Как побороть аппатию на работе? Вообще ничего не идёт. Даже свой код понимаю с трудом. А дома включается бафф +500% к трудолюбию.
Не хотелось бы. Меня всё устраивает именно в работе. И проекты прям то, что я хочу сам. Просто когда рядом люди - ничего не получается.
я на первом курсе, вызываю пояснительную бригаду
((((((((((
> Как побороть аппатию на работе? Вообще ничего не идёт. Даже свой код понимаю с трудом. А дома включается бафф +500% к трудолюбию.
Ну вот так и объясни манагеру. Может поймут и простят переведут на удалёнку. Можно сделать испытательный период - если всё будет заебись, то пусть так и оставят. Если им не понравится, то вернут взад
КОНЕЦ 4ГО КВАРТАЛА
@
РАБОТАЯ ПО ВЫХОДНЫМ СДАЛИ ПРОЕКТ В СЕРЕДИНЕ ДЕКАБРЯ
@
ИТОГИ ГОДА
@
ГЕНДИР ВСЕХ ПОБЛАГОДАРИЛ ЗА УСЕРДНЫЙ ТРУД
@
УСТРОИЛ КОРПОРАТИВ
@
САМ УЕХАЛ НА НОВЕНЬКОЙ BMW5 СРАЗУ ЖЕ ПОСЛЕ ОФИЦИАЛЬНОЙ ЧАСТИ
ТЯЖЕЛОЕ ДЫХАНИЕ, ЗЛОБНЫЕ РУССКИЕ ЗВУКИ, ШУМ ВЕЧЕРИНОК И ДЕТСКИЕ ВИЗГИ-ПИСКИ НА ЗАДНЕМ ФОНЕ
Просто пидорнут так как не командный игрок/низкие софт скилс/етс
Хотя, менеджерам, конечно, удобно - позвонил тиму, послушал их выступления - считай рабочий день окончен
Вот сейчас сижу, жду созвона, хотя он уже должен был начаться 15 минут назад. А так мог бы подремать после обеда, как я обычно люблю делать удалёнка
Вот кое-какие люди практикуют правило - опоздание хотя-бы на 5 минут влечёт отмену встречи. Я помню, столкнулся с одним таким челом, и я был опоздавшим. Неприятно, не то слово.
Отчего бы тебе также не поступить? Вовремя не позвонили - досвидос, у тебя есть другие дела.
ЗАДАЁШЬ В ЧАТЕ ОЧЕНЬ КОНКРЕТНЫЙ ВОПРОС С ПАРОЙ ВАРИАНТОВ ОТВЕТА
@
ОТВЕЧАЮТ ЧЕРЕЗ 15 МИНУТ
@
СМЕХУЁЧКАМИ И НЕ ПО ДЕЛУ
@
ЗАДАЁШЬ ЕЩЁ БОЛЕЕ КОНКРЕТНЫЙ ВОПРОС
@
ОТВЕЧАЮТ ЧЕРЕЗ 30 МИНУТ
@
МАТЕМАТИЧЕСКИ ТОЧНЫМ И АБСОЛЮТНО БЕСПОЛЕЗНЫМ ОТВЕТОМ
@
ПОЗВОНИЛ
@
ВОПРОС РЕШИЛСЯ ЗА 5 МИНУТ
@
> Ох блядь, жиза. Вообще не понимаю этих фанатов постоянных созвонов. Их нужно делать только в крайнем случае, когда вот прям без этого никак. В остальных случая только отвлекает, мешает сконцентрироваться, выдёргивает из состояния потока
@
БЕЗОПАСНИКИ ЦЕЛЫМИ ДНЯМИ СМОТРЯТ ЧТО ТЫ ТАМ ДЕЛАЕШЬ
@
ВСЕ БЫ НИЧЕГО НО ИЗ-ЗА ЭТОГО ПРОСТОЙ ЗАПУСК ПРОЕКТА ДЛЯ ДЕБАГА ЗАНИМАЕТ 40 МИНУТ
@
ТЕ КТО ЗАВЕДУЮТ СЕТЬЮ РЕШАЮТ ЧТО НЕЧА ТЕБЕ БУДУЧИ БЕКЕНДЕРОМ ЗАПРОСЫ НА ЛОКАЛХОСТ СЛАТЬ
@
РЕШАЕТСЯ ПЕРЕРУБАНИЕМ ПРОВОДА ВО ВРЕМЯ ДЕБАГА
@
НАСТУПАЕТ КОРОНА
@
ВСЕ ЭТИ ШИЗЫ НАЧИНАЮТ УСИЛЕННО РАБОТАТЬ, ПРИ ТОМ ЧТО ВАС РАЗОГНАЛИ НА УДАЛЕНКУ
@
ПОДКЛЮЧЕНИЕ К ВПН ФИРМЫ ЭТО ОТДЕЛЬНЫЙ ПРАЗДНИК, ПОТОМУ ЧТО СЕТЕВЕКИ МОГУТ ПРОСТО ТАК ЕГО ВЫКЛЮЧИТЬ И ТЫ ВЕСЬ ДЕНЬ НИХУЯ ДЕЛАТЬ НЕ МОЖЕШЬ
@
УДАЛЕННЫЙ РАБОЧИЙ СТОЛ ВНЕЗАПНО МОЖЕТ ДЕМОНСРИРОВАТЬ ПРИЗНАКИ ЖИЗНИ, ПОТОМУ ЧТО БЕЗОПАСНИКИ РЕШАЮТ ПОДКЛЮЧИТЬСЯ И ПОСМОТРЕТЬ ЧЕГО ТЫ ТАМ ДЕЛАЕШЬ
@
ПМ ЗВОНИТ В НЕРАБОЧЕЕ ВРЕМЯ И ТРЕБУЕТ, РАЗ ТЫ ИЗ ДОМА - РАБОТАТЬ БОЛЬШЕ, ВЕДЬ ТЕБЕ НЕ НУЖНО ТЕПЕРЬ ТРАТИТЬ ВРЕМЯ НА ДОРОГУ
@
ЗП 20К
fА у вас как дела?
Примерно также, ухх как бесит удаленный рабочий стол с виндой, когда к ним от мака коннектишься ууу
>ПМ ЗВОНИТ В НЕРАБОЧЕЕ ВРЕМЯ И ТРЕБУЕТ, РАЗ ТЫ ИЗ ДОМА - РАБОТАТЬ БОЛЬШЕ, ВЕДЬ ТЕБЕ НЕ НУЖНО ТЕПЕРЬ ТРАТИТЬ ВРЕМЯ НА ДОРОГУ
пиздец
Какой-то бугурт жизни не видевшего. Без задней мысли ставишь блокер на все задачи и занимаешься хуйней вроде документации
Дич какая то, еще и за 20к лол, имею рабочую машину дома, занимаюсь на ней любыми вещами, особенно двачеванием, без задней мысли. Когда не можешь подключиться я бы вообще не парился, в крайнем случае пишешь письмо с отчетом почему не смог работать и все
@
СИДИШЬ ПИЛИШЬ ТАСКУ
@
ТУТ ВНЕЗАПНЫЙ СОЗВОН НА ДВА ЧАСА
@
ЗАБЫВАЕШЬ, ЧТО ТЫ ВООБЩЕ ДЕЛАЛ
@
ВМЕСТО РАБОТЫ СМОТРИШЬ НА ЮТУБЕ, КАК ВЫЧЕСЫВАТЬ КОТА
@
НАКОНЕЦ ТО НАКОПИЛ МОТИВАЦИИ ПОРАБОТАТЬ
@
СИДИШЬ ПИЛИШЬ ТАСКУ
@
ТУТ ВНЕЗАПНО ЗАХОТЕЛОСЬ ЗАЙТИ В БАТТХЕРД ТРЕД
@
ГУГЛИШЬ ВИДЕО КАК ВЫЧЕСЫВАТЬ КОТА
@
все равно нихуя не понимает
@
а если что-то не понимает — надо сидеть и нихуя не делать, задавать вопросы только когда погонщик подойдёт в следующий раз
@
всерьез уверен что он главная движущая сила бизнеса, а остальные (особенно те кто выше него) нихуя не делают
@
не хочет вести жыру
@
не хочет вести конфлюенс
@
"бля какой созвон это трата времени"
Узнали себя, профнепригодные макаки?
МАКАКА НИХУЯ НЕ ДЕЛАЕТ МЕСЯЦАМИ
@
ЗАДАЧИ КОЧУЮТ ИЗ СПРИНТА В СПРИНТ
@
РЯЯЯЯЯ А ХУЛЕ ПЕРЕРАБОТКИ А ВОТ В ГУГЛЕ ДОПЛАЧИВАЮТ ЕСЛИ ОСТАЕШЬСЯ И КОФЕ ДАЮТ
@
ТА ЗА ЩОООО?
Публичный ключ постит не тот анон, а вообще левый или несколько анонов постят свои ключи. И что дальше делать?
Нужны удостоверяющий центр Let's 2ch CA, сертификаты, хеши, цифровые подписи, добавление поддержки 2chs:// в браузеры, и можно будет через двач хоть VPN строить.
> всерьез уверен что он главная движущая сила бизнеса, а остальные (особенно те кто выше него) нихуя не делают
Как будто это не так, без бесконечного пиздежа менеджеришок, аналитиков, техпихателей, скрам мастеров, операторов пульта презентаций, продукт может делаться и развиваться, без программистишек внезапно нет, каким бы ты софтскилистым пиздаболом не был
Программиста всегда можно заменить, а вот достойного оператора пульта презентации - хуй найдешь.
бля, только хотел написать, а тут уже это сказано
Мудрость про начальство, которую я для себя вынес.
1. Начальник всегда прав.
Если не прав, смотри п. 1.
2. Если начальник решил, что чёрное это белое, тут уже ничего не попишешь. Будь он хоть сто раз неправ.
3. Если начальник убеждён, что число пи должно быть равно четырём, то всё. Придётся из этого исходить.
И горе тебе, если в результате у тебя будет получаться хуйня. Виновен будешь ты, т.к. лажаешь именно ты.
А начальник конечно непогрешим - пи равно четырём, и никак иначе.
4. Совершенно неважно, насколько объективно ты хорош. Важно лишь мнение о тебе начальника.
Пусть даже ты пишешь распрекрасный код со скоростью молнии, или наоборот еле-еле справляешься с задачами.
Если начальник считает, что ты хреновый или замечательный (для второго случая) сотрудник, то всё.
5. Если начальник по своей некомпетентности угробит проект - тут ничего не попишешь. Власти для этого у него достаточно.
6. Спорить с начальством не слишком перспективно. Как известно, он начальник а ты дурак.
Слишком длинно. Ты - наемный раб, твоя задача ублажать начальника 40 часов в неделю в обмен на зарплату. Технические скилы всего лишь одно из средств ублажения.
Ещё немного мудрости. Про планирование и работу в компании.
Когда ты планируешь свою деятельность на будущее, гораздо более приемлемо в глазах начальства и окружающих, построить какие-нибудь нереалистичные заоблачные планы, по которым ты буквально горы свернёшь, а затем их успешно провалить со словами "ну не шмогла я, не шмогла. с кем не бывает. попробуем в другой раз.", нежели чем сразу пытаться продвигать скромный, но реалистичный план.
Во втором случае, ты просто утонешь в вопросах "а пачиму так мало и скромно? Петя обещает больше!". Из тебя будут буквально выбивать расширенные обязательства. Тебе будут говорить, что если ты не подпишешься на большее, мы тебя уволим уже сегодня. А в первом случае, тебя уволят только потом, когда свою ЗП ты получишь. А может даже и не уволят (особенно, когда план сорвут все).
Ещё, нереальный план даёт рычаги твоему боссу, чтобы лишний раз попенять тебе, какой ты ленивый. Пригрозить увольнением. Повыжимать соки. Ты у него на крючке. Удобно, чо.
В общем, люди не любят смотреть в глаза реальности от слова совсем. Слишком неприятно это.
В политике аналогично. Избирателям нравятся пустые обещания и популисты, которые говорят что если их выберут, они-то точно всего добьются, и сделают жизнь сказкой. Тут даже круче. Политики никаких договоров с избирателями не подписывают, никаких обязательств (что жизнь будет сказкой через 15 лет). Одни только обещания. Избиратели, 95% из которых быдло, живут в иллюзиях. Их разводят все кому не лень.
Гнилая контора, уходи
@
РПБОЧИЙ
@
СТОЛ
@
УДАЛЕННЫЙ
Как перестать смеяться от этого наркоманского словосочетания?..
В русском удалённый можно перевести и как remote и как removed.
Да, русский язык не такой уж и богатый.
Мимокрок
Это как раз не по русски, олень. Словосочетание удаленный доступ придумала малограмотная чушка лет 30 назад, просто так случилось, что оно закрепилось in use.
Но ведь тут указано только два времени и инфинитив, хотя их больше, плюс все эти формы на русском не имеют разной смысловой нагрузки, а падежи вообще заметно усложняет язык без каких либо профитов.
>смысловой нагрузки
Шиз, плиз. Пик очень хорош, единственное до чего там можно доебаться — это наличие в списке префектов, и некоторые "переводы" возможны только в случае фрейзалов. То есть в обоих этих случаях одного слова будет недостаточно для получения соответствующего перевода.
> fА у вас как дела?
Менеджер попросил подумать о таймтрекере
Попросил менеджера подумать о разбитом ебле
Синтетические языки > аналитические языки. По мне пару суффиксов и окончание добавить всяко проще, чем кучу связывающих глаголов и предлогов.
Дистанционный же.
7. Любое пожелание оплачивается заказчиком. Моё дело предупредить о возможных последствиях, желательно при свидетелях и в письменной форме с копией.
@
Никакого бугурта. Ебанутый заказчик сам себя накажет. Ему даже помогать в этом не нужно.
Можешь говорить отдалённый.
Вот ты смеёшься, а я в своё время (ещё когда в школе учился) недоумевал: раз удалили, значит, не нужно, так зачем к нему доступ делать?
тру
>ПМ ЗВОНИТ В НЕРАБОЧЕЕ ВРЕМЯ И ТРЕБУЕТ, РАЗ ТЫ ИЗ ДОМА - РАБОТАТЬ БОЛЬШЕ, ВЕДЬ ТЕБЕ НЕ НУЖНО ТЕПЕРЬ ТРАТИТЬ ВРЕМЯ НА ДОРОГУ
С этого вообще орнул. ТК, трудовой договор например?
По-русски desktop будет столешница. А с определением удаленный в компьютерном контексте - особенно смешно. Работаете на столешнице, которой нет.
получаешь таску
@
если что-то неясно, сразу связываешься с аналитиком и уточняешь
@
выполняешь свою работу — программируешь
@
считаешь себя таким же работником, как остальные — стороной в трудовом договоре с галерой
@
никакого бугурта
>на столешнице, которой нет
УДАЛЁННЫЙ, -ая, -ое. Находящийся, расположенный на далёком расстоянии
Да брось, не трави душу, половина программача не знает и не владеет "mother tongue".
@
ТЫ СЧИТАЕШЬ СЕБЯ ГЛАВНЫМ НА ПРОЕКТЕ, ВЕДЬ ТЫ ПИШЕШЬ КОД, А ЭТО ОСНОВНОЕ, ЧТО ВЫ ПРОИЗВОДИТЕ
@
ТЫ - ПРОДЖЕКТ МЕНЕДЖЕР
@
ТЫ СЧИТАЕШЬ СЕБЯ ГЛАВНЫМ НА ПРОЕКТЕ, ВЕДЬ ТЫ УПРАВЛЯЕШЬ ПРОЕКТОМ, СЛЕДИШЬ ЗА СРОКАМИ И ТД
@
ТЫ - БИЗНЕС АНАЛИТИК
@
ТЫ СЧИТАЕШЬ СЕБЯ ГЛАВНЫМ НА ПРОЕКТЕ, ВЕДЬ ТЫ ПОСТОЯННО ОБЩАЕШЬСЯ С ЗАКАЗЧИКОМ, УЗНАЕШЬ ЕГО ХОТЕЛКИ И ПЕРЕДАЕШЬ ТАСКИ ПРОГРАММИСТАМ
@
ТЫ ГЛАВА КОНТОРЫ
@
ТЕБЕ ПОХУЙ, КТО КОГО СЧИТАЕТ ГЛАВНЫМ, ЛИШЬ БЫ ДЕНЬГИ ПРИНОСИЛИ
Как же бесит слово заказчик, сразу веет бизнес-центром класса Ж, контейнерами с курочкой и гречкой в холодильнике, проектом 2011 года от КРУПНОГО ЗАКАЗЧИКА, переработочками чтобы успеть к демонстрации тому самому крупному заказчику...
Ой, какое повышение? Мне закашик больше не уплотит!
Ой, какие тесты, код ревью, рефакторинг? Мне закащик больше не уплотит!
У нас заказчика переименовали в продукт овнера, но всё описанное как было, так и осталось.
Ты наверное удивишься, но в аджайле придумали роль псевдозаказчика (product owner) на случай, если заказчика нет ( или он не хочет тратить время свое)
@
ДРУГ ПРИНОСИТ ПРОГРАММУ ПО ЗАДАНИЮ ИЗ ШАРАГИ
@
СПРАШИВАЕТ, ПОЧЕМУ НЕ РАБОТАЕТ
@
ПРОСИТ СДЕЛАТЬ, ЧТОБ РАБОТАЛО
@
ОТКРЫВАЕШЬ КОД
@
А ТАМ ПЕРЕМЕННЫЕ И МЕТОДЫ ВПЕРЕМЕШКУ CAMEL CASE И LOWER CAMEL CASE
@
ТЕЛО IF НЕ НАЧИНАЕТСЯ СО СКОБОЧКИ
@
ПЕРЕМЕННЫЕ НАЗЫВАЮТСЯ BUTTON23 И TEXTBOX14
@
ЖИДКО ПУКНУВ ТРЕБУЕШЬ ПЕРЕПИСАТЬ НОРМАЛЬНО
@
...
@
ДРУГ ПИШЕТ, ЧТО ОН ВСЕ ПОЧИНИЛ, БЛАГОДАРИТ, ОБЕЩАЕТ ЗАБИТЬ КАЛЕМБАСИК С ДВОЙНЫМ ЯБЛОЧКОМ
@
ХОРОШО
>падежи вообще заметно усложняет язык без каких либо профитов.
Пчел...
Они несут информацию о контексте предложения. Небось ещё и однозерновые абстрактные прокси фабрики пишешь.
нихуя се ты мудрый
Годно
Ещё когда ты устроился в компанию, не надо сразу выкладываться на 100%. Если сделаешь так, к этому привыкнут, и зп не будут повышать, пока не начнёшь работать на 150%+.
Поэтому сначала работай вполсилы где-то полгода, потом начинай работать на 100% и уже тогда просить зп выше.
Ну что, готов терпеть самодурство босса? Пусть даже за большие деньги?
Да? А может ещё и отсосёшь? Я заплачу.
Нет тут никакого заказчика. Ты на работе, у тебя босс-придурок.
Он тебя заставит хлебать дерьмо за мелкий прайс. Устраивает?
На твои предупреждения ему покласть с высокой башни. Виновен всегда ты, не смотря ни на что.
Многие реально готовы отсосать, но за действительно большие деньги, а не по рыночному тарифу.
Почитай истории (на хабре, кажется), как у программистов из силиконовой долины срезают ЗП, если они на удалёнке переезжают куда-то.
>ВАМ СТОЛЬКО ДЕНЕГ НЕ НУЖНО, ВЫ ЖИВЁТЕ В ДЕШЁВОЙ МЕСТНОСТИ. НАМ САМИМ ДЕНЬГИ НУЖНЫ
И подумай, есть ли у них трудовые договора с прописанными ЗП. Имеют ли они значение?
> срезают ЗП, если они на удалёнке переезжают куда-то
Даже у нас в зелёном банке обещают так сделать, когда постоянную удалёнку узаконят (не временную меру из-за того самого вируса).
мимо
А также милые конторы, навроде ФГУП ГБУ МосМетроГипроСтрой, ТрансМашХолдинг, или там ГазМяс (шутка).
Почему латентные? Вполне себе явные.
Лучше уж так. Устроился в контору, дали новый проект. ПМ отвалился через пару недель, в итоге команда из меня, аналитика и тестера. Всем похуй, никто свою зону ответственности расширять не захотел, в итоге блядь все через три пизды, документация выглядит как кусок говна, договорится о всяких стендах никто не может, плаваем сами по себе.
Если бы я понял это с самого начала, я бы может и взялся рулить всем этим говном и раздавать пиздов.
Тут как бы тоже, но она только по пинку может что-то полезное сделать. Кроме очевидных вещей, типа создания конфы в зуме для стендапа.
ТЫ ГЛАВА КОНТОРЫ
@
ТЕБЕ ПОХУЙ, КТО КОГО СЧИТАЕТ ГЛАВНЫМ, ЛИШЬ БЫ ДЕНЬГИ ПРИНОСИЛИ
Разработчик заднего конца не палится. Уж кому, а главе конторы пиздец как хочется чувствовать себя главным, особенно в пидорашке.
Не все здесь программисты в силиконовой долине с американским тк.
@
ТИМЛИД ТРЕБУЕТ НАПИСАТЬ ТЕСТЫ
@
НУ И ЧТО ЧТО ДРУГИЕ ТЕСТЫ НЕ УПАЛИ
@
ПИШИ ТЕСТЫ, ПИШИ-ПИШИ, ЧТОБЫ ПОКРЫТИЕ БЫЛО, РАЗ-РАЗ-РАЗ ПИШИ ТЕСТЫ
@
ЧТО ЗНАЧИТ РРРЯЯЯЯ?
@
НАЧИНАЕШЬ ПИСАТЬ ТЕСТЫ
@
ПОНИМАЕШЬ, ЧТО БАГФИКС НЕПРАВИЛЬНЫЙ
@
ЖИДКО ПУКНУВ В ОТДЕЛЬНУЮ ВЕТКУ ДЕЛАЕШЬ НОРМАЛЬНЫЙ ФИКС
@
ПАДАЕТ ЕЩЕ ПАЧКА ТЕСТОВ
@
ПОНИМАЕШЬ, ЧТО БАГ ЭТО ЧАСТЬ ЛОГИКИ
@
СОБИРАЕШЬ СОЗВОН НА ДВА ЧАСА
@
В ИТОГЕ РЕШИЛИ НИЧЕГО НЕ МЕНЯТЬ
Как фичу хоть потом оформили?
ТЫ ГЛАВА КОНТОРЫ
@
ТЕБЕ ПОХУЙ, КТО КОГО СЧИТАЕТ ГЛАВНЫМ, ЛИШЬ БЫ ДЕНЬГИ ПРИНОСИЛИ
@
ПРОСЫПАЕШЬСЯ ОБОСРАННЫМ НА ЛЕКЦИИ
А я уже осуществил это желание. И это охуенно. Мимо натурал
Прикол в том, что продакт оунер может и не быть заказчиком, а просто нанятым человеком. Профессия такая.
@
ОЩУЩАЕШЬ ОТВРАЩЕНИЕ ПРИ РАБОТЕ НАД ПРОЕКТОМ, ГДЕ В БАЗЕ ДАННЫХ ОЧЕНЬ МНОГО ДУБЛИРУЮЩЕЙСЯ ИНФОРМАЦИИ В РАЗНЫХ ТАБЛИЦАХ
@
ТАКОЕ ВПЕЧАТЛЕНИЕ, ЧТО БАЗУ ДЕНОРМАЛИЗОВАЛИ НЕ ДЛЯ ПРОИЗВОДИТЕЛЬНОСТИ, А ПОТОМУ ЧТО ВСЕМ БЫЛО ПОХУЙ НА ДИЗАЙН БАЗЫ
ТЫ ПЕРФЕКЦИОНИСТ
@
УСТРАИВАЕШЬСЯ В КОНТОРУ С 10+ЛЕТНЕЙ ЛЕГАСИ КОДБАЗОЙ
@
НАЧИНАЕШЬ ЗНАКОМИТЬСЯ С ПРОЕКТОМ, ЧТОБЫ ВЫПОЛНИТЬ ПАРУ ПЕРВЫХ НЕСЛОЖНЫХ ТАСОК
@
КЕКАЕШЬ
@
ПУКАЕШЬ
@
УМИРАЕШЬ
@
ДЕЛАЕШЬ НЕДЕЛЮ
@
ДЕЛАЕШЬ ЕЩЕ НЕСКОЛЬКО НЕДЕЛЬ
@
ДАЖЕ ВЫХОДИТ ЧТО-ТО АДЕКВАТНОЕ
@
ДУМАЕШЬ ВОТ ВОТ И ЗАКРОЮ
@
ДЕЛАЕШЬ ПУЛЛ РЕКВЕСТ
@
ЖДЕШЬ РЕВЬЮ
@
НА РЕВЬЮ ВСЕ ГУД
@
НО МЕНЕДЖЕР ЕХИДНО НЕ ДАЕТ ОТМАШКУ МЕРЖИТЬ
@
ЖДЁШЬ МЕСЯЦ
@
ЖДЕШЬ ЕЩЁ 3 МЕСЯЦА
@
СПРАШИВАЕШЬ НУ КОГДА ЖЕ
@
"ВСЕМУ СВОЕ ВРЕМЯ, ПРОДАКТЫ НЕ ЗААПРУВИЛИ ЕЩЁ"
@
ПРОХОДИТ ПОЛГОДА
@
КОД ТАК И НЕ СМЕРЖЕН
@
МЕНЕДЖЕР ЗАКРЫВАЕТ ПУЛЛРЕКВЕСТЫ И УДАЛЯЕТ ВЕТКИ
@
ДЕЛАЕШЬ НЕДЕЛЮ
@
ДЕЛАЕШЬ ЕЩЕ НЕСКОЛЬКО НЕДЕЛЬ
@
ДАЖЕ ВЫХОДИТ ЧТО-ТО АДЕКВАТНОЕ
@
ДУМАЕШЬ ВОТ ВОТ И ЗАКРОЮ
@
ДЕЛАЕШЬ ПУЛЛ РЕКВЕСТ
@
ЖДЕШЬ РЕВЬЮ
@
НА РЕВЬЮ ВСЕ ГУД
@
НО МЕНЕДЖЕР ЕХИДНО НЕ ДАЕТ ОТМАШКУ МЕРЖИТЬ
@
ЖДЁШЬ МЕСЯЦ
@
ЖДЕШЬ ЕЩЁ 3 МЕСЯЦА
@
СПРАШИВАЕШЬ НУ КОГДА ЖЕ
@
"ВСЕМУ СВОЕ ВРЕМЯ, ПРОДАКТЫ НЕ ЗААПРУВИЛИ ЕЩЁ"
@
ПРОХОДИТ ПОЛГОДА
@
КОД ТАК И НЕ СМЕРЖЕН
@
МЕНЕДЖЕР ЗАКРЫВАЕТ ПУЛЛРЕКВЕСТЫ И УДАЛЯЕТ ВЕТКИ
Лучше пускай удаляют, чем вспомнят через 9 месяцев и скаждут мержить, а там конфликтов почти на весь PR.
Турстори, кстати. Ушел из конторы после этого
ебать ты лузер
А это в какой отрасли так? Я просто с веба не представляю такие долгие ветки. Не осуждаю, просто не сталкивался
Хз, что у того анона, но в энтерпрайзе обычное дело, когда резко изменилось требования, либо понизился приоритет задачи, либо бизнес не может по полгода согласовать детали и даёт отписки в ответ на емейлы.
Это дело было в интыпрайзе, не у меня конечно, но бугурт я ощутил разработчика.
Веб. Просто очень хуевые процесы
@
ВХОД ЧЕРЕЗ СОЦИАЛКИ
@
ИЗВИНИТЕ, НЕВОЗМОЖНО ПОДКЛЮЧИТЬСЯ К СЕРВИСАМ ГУГЛ
@
ВОЙТИ ЧЕРЕЗ ФЕЙСБУК
@
ВВЕДИТЕ НОМЕР ТЕЛЕФОНА
@
ВВЕДИТЕ КОД С СМС
@
ЗАЛОГИНТЕСЬ В ФЕЙСБУК
@
ВВЕДИТЕ КОД ОТПРАВЛЕННЫЙ НА ПОЧТОВЫЙ ЯЩИК ПРИВЯЗАННЫЙ К ФЕЙСБУК
@
ВЫБЕРИТЕ ВСЕ СВЕТОФОРЫ\ГРУЗОВИКИ\ХОЛМЫ
@
ИЗВИНИТЕ ВЫ ВВЕЛИ НЕПРАВИЛЬНЫЙ КОД
@
МЫ ОТПРАВИЛИ КОД ДЛЯ ПРОВЕРКИ КОДА
@
ВВЕДИТЕ ВСЕ ЗАНОВО
@
РЕШАЕШЬ ЧТО ПРОЩЕ УМЕРЕТЬ ДЕВСТВЕННИКОМ
@
ОМЕРИКА СВЕРХДИРАЖВА!! ОМИРАКАНСКОЕ ОЙТИ ПРАВИТ МИРОМ!! ЕСЛИ ОНА РАЗВАЛИТСЯ НАМ ФСЕМ ПИЗДЛА!
@
ВХОД ЧЕРЕЗ СОЦИАЛКИ
@
ИЗВИНИТЕ, НЕВОЗМОЖНО ПОДКЛЮЧИТЬСЯ К СЕРВИСАМ ГУГЛ
@
ВОЙТИ ЧЕРЕЗ ФЕЙСБУК
@
ВВЕДИТЕ НОМЕР ТЕЛЕФОНА
@
ВВЕДИТЕ КОД С СМС
@
ЗАЛОГИНТЕСЬ В ФЕЙСБУК
@
ВВЕДИТЕ КОД ОТПРАВЛЕННЫЙ НА ПОЧТОВЫЙ ЯЩИК ПРИВЯЗАННЫЙ К ФЕЙСБУК
@
ВЫБЕРИТЕ ВСЕ СВЕТОФОРЫ\ГРУЗОВИКИ\ХОЛМЫ
@
ИЗВИНИТЕ ВЫ ВВЕЛИ НЕПРАВИЛЬНЫЙ КОД
@
МЫ ОТПРАВИЛИ КОД ДЛЯ ПРОВЕРКИ КОДА
@
ВВЕДИТЕ ВСЕ ЗАНОВО
@
РЕШАЕШЬ ЧТО ПРОЩЕ УМЕРЕТЬ ДЕВСТВЕННИКОМ
@
ОМЕРИКА СВЕРХДИРАЖВА!! ОМИРАКАНСКОЕ ОЙТИ ПРАВИТ МИРОМ!! ЕСЛИ ОНА РАЗВАЛИТСЯ НАМ ФСЕМ ПИЗДЛА!
Странно судить об айти в целом по паре социалочек.
Можно увидеть конкретный список "импортозамещения" американских сервисов/приложений китайскими аналогами? Я из явно китайского юзал только UC Browser на древней мобилке, когда из альтернатив были только ничего не умеющая опера и прожорливый хром.
Предвижу VCS-срач и скажу, что мне совершенно не нравится гит, какой-то он сложный и неочевидный. Впрочем, другого я не видел, хотя говорят, что меркуриал проще и удобнее, но выбора у меня кроме как git и нету, раз все его юзают, и всё крутится вокруг него. Вот.
>РЕШАЕШЬ ЧТО ПРОЩЕ УМЕРЕТЬ ДЕВСТВЕННИКОМ
Так ты бы с тиндером и не лишился её. Тиндер - для трахарей и блядей.
Он сложный только потому, что в нем все сводится к тупой манипуляции наборам патчей. И многие очевидные вещи/операции могут называться не очевидно или делаться не очевидно. После 8 лет колупания сего дела не представляю как можно иначе без веток, без амменда коммита, ребейзов ветки, сквоша коммитов и вся вот эта остальная ебала без которой гит не гит.
Люди годами учатся работать со всякими 3дмаксами и не жужжат что им что-то там неочевидно. Освоить гит это от силы месяц неспешного чтения гитбука и набивания руки в консольке. Решаемая проблема сложная, а не гит. Другие VCS нихуя не проще. Либо таки проще, но за счёт отказа от нужных фич.
> ОМИРАКАНСКОЕ ОЙТИ ПРАВИТ МИРОМ!! ЕСЛИ ОНА РАЗВАЛИТСЯ НАМ ФСЕМ ПИЗДЛА!
Кто вообще такое говорит? Америка ценна своим богатым рынком сбыта, а не тем, что там специалисты какие-то пиздатые.
@
ПРОХОДИТ ПОЛГОДА
@
КОД ТАК И НЕ СМЕРЖЕН
@
МЕНЕДЖЕР ЗАКРЫВАЕТ ПУЛЛРЕКВЕСТЫ И УДАЛЯЕТ ВЕТКИ
@
УВОЛИЛСЯ ТАК И НЕ ЗАКРЫВ ТАСКУ
Дорвеи-дорвейчики.
Тут где-то один анон писал, что у него тоже был такой сайт, который приносил ему сколько-то там долларов в месяц.
Си. Плюсы слишком громоздкие по фичам для вката в программирование.
>>07160
>Твои блядские плюсы и азы информатики нужно учить годами
Проблемы дебичей и тех, кто не умеет в образование. Если грамотно сочетать теорию и практику, эти азы информатики можно максимум за год подтянуть.
> новичок может выучить например пхп за 2 месяца и начать поднимать кеш
На верстке сайтиков под цмс не поднимешь большой кеш. Да и для нее кое-какие азы информатики все равно нужны - например, базовые структуры алгоритмов. Если уж хочется пилить клиентские приложения, то лучше учить ЖС, Dart или Swift. Во фронтенде (вебовском или нативно-мобильном) кеш еще больше заработаешь, таски в целом менее тривиальные да и ебли с движком из-за того что заказчик хочет добавить фичу, которая не заточена под флоу цмс-ки и которой нет в доступных плагинах на порядки меньше. Если хочется в бэкенд, то лучше учить Го, Шарп или Жабу.
Но т.к. новичок не имеет ни малейшего понятия о предметных областях программирования, лучше начать с более низкоуровневых языков. Потому что с программированием на них даст лучше понимание того, как простые программы/алгоритмы работают под капотом, чем на высокоуровневых языках. Последние создавались не для более удобного написания хелловорлдов, а для эффективной и кооперативной разработки сложного софта (чтобы был больше фокус на бизнес-логику, а не на низкоуровневую поебень). Параллельно с этим увеличивая сложность разрабатываемых программ, уже перекатываться на более высокоуровневые языки. Так заложится прочный фундамент программиста. А в пхп-разработку с полного нуля за 2 месяца стоит вкатываться только если срочно нужна ойти работа.
Не знаю, я не трогал.
Ещё ебаный гугл почему-то не может у себя в настройках сделать бан сайтов нахер из выдачи
Потому что люди жрут гавно с рекламой, никому нахой не вперлось дорабатывать легаси ради каких-то советских ублюдков
> не путай новичка своей мочей процедурной
> процедурной мочей
Так уж устроены программы at low-level , манюнь. Все алгоритмы и скрипты пишутся в процедурном стиле. Декларативный стиль программирования (ОО, функциональный) стали использовать для легкой масштабируемости и поддерживаемости сложного софта. Пока вкатун до такого не дошел, необходимости использовать фичи ФП нет смысла.
> Хаскель надо учить
Слишком сложный для новичка. Да и вакансий на 1.5 землекопа. Если хочется удариться по функциональщине и алгебре типов, то лучше освоить ReasonML или Scala.
А какие еще языки для бэкенда сейчас в ходу? Пыха - это язык CGI-скриптов и шаблонизатор для веб-страничек. Писать на нем сервисы - это ебля с движком вместо фокуса на бизнес-логике. Он заточен под CGI-скрипты и как шаблонизатор веб-страничек. ЖС, Питон, Руби хорошо подходят для прототипирования и быстрого запила простых сервисов, но не для LTS сервисов.
>ReasonML
R E S C R i P T
E
S
C
R
i
P
T
Ризон не взлетел, увы и ах. Никому в хуй не уперся окамл на фронте.
>Так уж устроены программы at low-level , манюнь
At low-level там байтики гоняются, а не goto ssanina mov puk, ты еще предложи новичку заряды двигать.
Скала не ФП, так, резиновая уточка для малышей.
То, что ты понимаешь под борщём - не борщ, а свекольник.
Двачую, сам охуел тогда
С 16 ЛЕТ ДРОЧИШЬ КОМПУКТОР САЙЕНС
@
ООП, АЛГОРИТМЫ, УСТРОЙСТВО ОС, АРХИТЕКТУРА,
@
НА ПЕРОМ ЖЕ КУРСЕ НАХОДИШЬ РАБОТУ КРЕСТОМРАЗЬЮ В ПАРАШНОМ НИИ
@
ГОДА ЧЕРЕЗ ЧЕТЫРЕ ДОБИРАЕШЬСЯ ДО 90К ЧИСТЫМИ В МЕСТНОЙ ПРОДУКТОВОЙ КОМПАНИИ ВНЕ ДС
@
ОДНОГРУППНИК, ВО ВРЕМЯ ОБУЧЕНИЯ НЕ ПРОРАБОТАВШИЙ И ДНЯ, УКАТЫВАЕТСЯ В ПИТЕР И ПОЛУЧАЕТ 200К ФРОНТЕНД-МАКАКОЙ
Блджад, это я настолько ненужный или так рыночек швятой порешал?
inb4 конечно же первый вариант
Так иди в нормальное место. Тут часто отписывался нвидиа-кун, который с тремя годами опыта вскатился в нвидию и получает под пол-ляма, нахуй ты в нии дрочишь
Я уже не в НИИ давно, потому и дропнул, что платили 23к. Сейчас просто работаю в крепкой продуктовой конторе - условия в общем-то хорошие, работать тоже по большей части достаточно интересно. Просто не могу понять, откуда такой перекос.
Нет никакого перекоса. Если бы твой друг остался в вашем селе работать в веб-студии Дяди Бальдожора, то тоже получал бы копейки
Хочешь сказать, что надо ПРОСТО И БЕЗ ЗАДНЕЙ МЫСЛИ понаехать в Мацкву/Питер?
> селе
Не такое уж и село, ради справедливости - Сибирские Афины, как-никак, лол.
Ну всяко лучше, чем гребаный Экибастуз.
Но вообще да, он хорош только пока ты студент очной формы - через полгодика после окончания у тебя открываются глаза, и выясняется, что продуктовых контор тут не так много, как в том же Нске, а нормальное неоверпрайс жильё и вовсе не купить.
@
УХ ЩАС НАБЕРЕМСЯ СТОЛИЧНОГО ОПЫТА
@
КОД МОСКОВСКИХ СПЕЦИАЛИСТОВ - НЕЧИТАЕМОЕ ГОВНО
@
НАПИСАНО НА ФРЕЙМВОРКЕ БЕЗ ИСПОЛЬЗОВАНИЯ ОСОБЕННОСТЕЙ И ВОЗМОЖНОСТЕЙ ФРЕЙМОРКА
@
АВТОТЕСТОВ НЕТ И НЕ ПРЕДВИДИТСЯ
@
МАСШТАБИРУЕМОСТЬ КАК У ХЛЕБУШКА
@
ВЕШАЕТ ТВОЙ РАБОЧИЙ КОМП НА i7 ПО 10-15 СЕКУНД
@
ВСЕ ЛЬЕТСЯ В ОДНУ ВЕТКУ DEV ОТКУДА СОБИРАЕТСЯ И ТЕСТОВЫЙ СЕРВЕР И ПРОД
@
ПОНИМАЕШЬ ЧТО ВАШ САМЫЙ ГОВЕНЫЙ ПРОЕКТ НА ПОРЯДОК ЛУЧШЕ ТОГО ЧТО ПИШУТ ЭТИ ПРОФИ
@
ЗАРПЛАТА У НИХ МИНИМУМ В ДВА РАЗА БОЛЬШЕ ТВОЕЙ
Томск это город студентов. После выпуска там делать нечего.
Жена там отучилась, потом несколько раз с ней понаезжали туда в гости к ее друзьям их тех кто там остался. Уныние и безнадега для взрослого человека.
ПРЕДЛАГАЕШЬ ВСЕ-ТАКИ НЕ ЛИТЬ ВСЕ ИЗМЕНЕНИЯ СРАЗУ В ПРОД
@
СОЗДАЕШЬ ФИЧА-ВЕТКИ С ТЭГАМИ
@
ТИМЛИД С КРИКОМ "НА НАХ ЕПТА!" ЗАЛИВАЕТ ВСЕ ТВОИ НЕТЕСТИРОВАННЫЕ ИЗМЕНЕНИЯ НА ПРОД
@
У ПМА СЕГОДНЯ ПРЕЗЕНТАЦИЯ МВП КРУПНОМУ ЗАКАЗЧИКУ
>ЗАРПЛАТА У НИХ МИНИМУМ В ДВА РАЗА БОЛЬШЕ ТВОЕЙ
Так всегда будет. Суть айти в том, что качество кадра с его зарплатой почти никак не коррелирует
Да в этом суть всего рыночка а не ойти, маня. Какой нибудь Джоник из Калифорнии будет получать твой годовой оклад в месяц за ещё худший говнокод, и даже кассирша из какой нибудь Норвегии тоже будет получать несколько твоих окладов. А ты получаешь з/п за пол года какого нибудь узбека который работает в таких условиях, что сдохнет в 28, кек.
@
ПОВЫДЕЛЯЛ РАНДОМНО КУСКИ И ВЫНЕС ИХ В ОТДЕЛЬНЫЕ МЕТОДЫ
@
ЫЫЫЫ РЕФАКТОРИНГ!!!
Зато по названиям методов можно догадаться, что этот говнокод делает, а то иногда читаешь методы с бизнес-логикой на 300 строчек без комментариев и охуеваешь, то и дело открывая blame, чтобы узнать, когда и зачем это писали.
А это не один разраб пишет, а несколько поколений разрабов добавляет строчку за строчкой, решая конкретную бизнес-задачу, и кого-то одного обвинить на ревью нельзя, вот в результате и получается такая хуйня. И если кто-то соизволит от безделья заняться рефакторингом, то может и станет лучше.
>>27039
В ПАО Сбербанк тоже не принято.
> методы с бизнес-логикой на 300 строчек без комментариев и охуеваешь
Хех. Мой сеньер пишет методы по 900 строчек! Технологии технологиями, а опыт в ПХП не пропьешь! И похрен что мы кодим на котлине.
Ну, справедливости ради, если не смотреть на код, то дядька реально крутой, в технологиях шарит, может строить архитектуру и прочее, я не понимаю какого хуя он продолжает писать код, мог бы, наверное, просто сидеть и отдавать указания, оно бы не вызывало диссонанс такой, когда вроде шарит, но смотришь код и охуеваешь, потому что за такое даже в вузе отпиздят и заставят переписывать.
@
НАХОДИШЬ ТОЛЬКО ОДНУ
@
ПОЧТИ БЕЗ ДОКУМЕНТАЦИИ И УПОМИНАНИЙ НА STACKOVERFLOW
@
КОЕ-КАК НАХОДИШЬ ТОЛЬКО ДВА ПРИМЕРА ИСПОЛЬЗОВАНИЯ СПЕЦИФИЧНОЙ ФУНКЦИИ
@
ПЕРВЫЙ ПРИМЕР - СКРИНШОТ КОДА НА 50 СТРОЧЕК
@
ВТОРОЙ - РЕЗУЛЬТАТ ПОСТРОЧНОГО ВВЕДЕНИЯ КОДА В ИНТЕРПРЕТАТОРЕ ВМЕСТЕ С ">>>", "..." И ВЫВОДОМ ПРОМЕЖУТОЧНЫХ ЗНАЧЕНИЙ, НО ЗАТО МОЖНО СКОПИРОВАТЬ
@
ОБА ПРИМЕРА ДЛЯ PYTHON 2
одна из причин, почему я не стал вкатываться в питухон. А не за горами и Гвидо Питон 4
Реверс-бугурт
ТЫ МАЙНТЕЙНЕР ЛИБЫ ДЛЯ ПЕТУХОНА
@
ВСЯ ДОКУМЕНТАЦИЯ ЭТО ПОШАГОВЫЙ РИДМИ, БОЛЬШЕ ДЛЯ СЕБЯ, И БОЛЬШЕ ПРО СБОРКУ
@
ВРОДЕ БЫ ТРИ С ПОЛОВИНОЙ КАЛЕКИ ПОПОЛЬЗОВАЛИСЬ ТВОЕЙ ЛИБОЙ, В ИНТОРНЕТЕ ЕСТЬ УПОМИНАНИЯ
@
НО ТЕБЕ ЛЕНЬ РАЗВИВАТЬ РАДИ ТРЁХ С ПОЛОВИНОЙ КАЛЕК
@
НУ ЗАТО НА ТРЕТЬЕМ ПИТОНЕ
Так ясен хрен верное, просто аутсорс галеры мелкого пошиба где гендир сидит напротив и часто употребляет слово заказчик это то еще удовольствие
> И если кто-то соизволит от безделья заняться рефакторингом, то может и станет лучше.
Или ещё выебут, за то что непонятно на что портатил время
>И если кто-то соизволит от безделья заняться рефакторингом, то может и станет лучше.
>ЮЗЕРА ИСПОЛЬЗОВАЛИ НАШУ ПРОГРАММУ И ВСЕМ БЫЛИ ДОВОЛЬНЫМ, НО ПОСЛЕ ТОГО КАК СЫЧЁВ ТАМ ЧТО-ТО ИЗМЕНИЛ, КЛИЕНТЫ НАЧАЛИ ЖАЛОВАТЬСЯ ЧТО ИХ КАНДУХТЕР СТАЛ РАБОТАТЬ МЕДЛЕННЕЕ, ИВАН ВАЛЬЕРЬЕВИЧ, РАЗБЕРИТЕСЬ С СЫЧЁВЫМ
Не так душевно
>непонятно на что портатил время
Пацаны, а много ли вы тратите рабочего времени впустую?
Я например, утром по приходу в офис, где-то час сижу читаю почту а также читаю новостные сайты.
Это не считая времени на обед, на совещания. Ещё, я постоянно после того как напишу кусок кода, иду попить немного чая с печеньками и поразмыслить над очередным кусочком. В день, я пожалуй раза три так могу. Минут на 10-15 каждый. А то и более.
Сколько вы ежедневно работу работаете, чистого времени из стандартных 8 часов?
>ОБА ПРИМЕРА ДЛЯ PYTHON 2
А что, второй питон уже вышел из моды? Есличо, я до сих пор им пользуюсь. А отсутствие ascii-строк в трёшке меня как-то напрягает.
Приведи аргументы, почему двушку не стоит пользовать?
>заглянуть в код и понять как работает либа
Если код нетривиальный - читать его и разбираться последнее дело.
Которое займёт неизвестно сколько времени.
Удвою этого познавшего жизнь.
По-разному. Утром обычно тоже читаю почту или делаю что-то по мелочи. После обеда некоторое время вообще не работается, поэтому иногда долго не ухожу на обед, чтобы доделать, пока есть настроение, хоть и обедаю быстро. Совещания/созвоны у меня редко, не дорос ещё. В остальное время если могу работать, работаю, а чай пью в процессе. Если затык, и спросить пока что не у кого, могу так хоть полдня сидеть в ожидании и страдать хуйнёй, но так к счастью бывает редко. И бывает иногда, что работа вообще не идёт, ни строчки кода выдавить не можешь, сколько сил ни прилагай.
А чего сразу не первый питон? Чего не кобол? Работает же.
И правильно сделает.
https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/
Нехуй переписывать и погружаться в огромные бесцельные рефачи. Надо конкретно: такая-то проблема, вот так измеряется, предлагается сделать так-то, стоить это будет столько, выгода будет такая-то. Вот тогда руководство ещё и спасибо скажет.
ВЫКЛЮЧИЛ ТЕЛЕФОН
@
НО КОЕ-ЧТО ПРОДОЛЖАЕТ РАБОТАТЬ
@
ВЫТАЩИТ БАТАРЕЮ
@
НО КОЕ-ГДЕ СПРЯТАНА АВАРИЙНАЯ ЕМКОСТЬ
@
ВЫ ОБНАРУЖЕНЫ
Ну и HARD-левел для умненьких
ВКЛЮЧАЕШЬ KALI LINUX + TOR
@
НА ПРОЦЕССОРЕ INTEL||AMD
@
ВЫ ОБНАРУЖЕНЫ
@
ДААА КАКК?? РЯЯЯЯ МАМ ПАП ПОМОГИТИ
>НА ПРОЦЕССОРЕ INTEL||AMD
Просто сконструируй свой сокет и матплату (и прошивку и драйвера для них), тогда будет бежопашность до первой уязвимости.
>Нехуй переписывать и погружаться в огромные бесцельные рефачи
Ты эту статью хоть читал? Нельзя переписывать с нуля, а рефакторить можно и нужно. Если этого не делать, то со временем проект превратится в месиво и дойдет до точки невозврата, когда уже нельзя будет ни добавить новые фичи, ни привести код в адекватное состояние.
Можно взять riscv64 systemverilog имплементацию и отпечатать своих. Профит.
Там есть парочка которые поддерживают mmu. На нем можно уже и Линукс запустить, и к этому найти чертежи видеоядра открытого, чтобы по шине подключить к нему, вот и SoC выходит. Можно рядовые задачи гонять, типо сидеть в терминале и дрочить на код. Или чем там программисты занимаются сутками.
Это тема отдельного срача, но для быстрого прототипирования альтернатив питону особо и нет. А где ещё можно по-быстрому написать на псевдокоде и сразу запустить? А когда выяснится, что идея работает, можно уже переписывать на настоящем языке программирования.
Что, думаешь на нём не выйдет написать код, где хуй разберёшься? У меня плохие новости.
Ебать, ты промытый.
> для быстрого прототипирования альтернатив питону особо и нет. А где ещё можно по-быстрому написать на псевдокоде и сразу запустить
На любом скриптовом языке.
Я и говорю - тема отдельного срача.
В эльбрусе нычки от КГБ.
Огромные и бесцельные рефачи это подмножество всех рефачей.
> Ты эту статью хоть читал?
Токсеры будут токсить. Все у них вокруг дебилы, а они Д'Артаньяны на конях. До запятых ещё доебись, мудила.
Вот ты будешь втирать это главному кабанчику, что оплачивает банкет. А он тебе: да чо ты пиздишь там, придурошный? поумничай мне тут! марш работать! чтоб очередная фича была готова уже через неделю! порефакторить тут захотел! я тебе щас так порефакторю, костей не соберёшь!
Вот на этом всё и закончится. А будешь пиздеть о месиве, что не в состоянии добавить код - так значит ты не компетентный! и тебе дорога за ворота на улицу! наймём другого.
Всё. Отныне ты ко мне будешь обращаться "Ваше превосходительство!". И никак иначе. Тебе ясно?
И вот ты отправляешься на улицу. Кабанчик ищет другого.
Возможное развитие ситуации:
1. Кабанчик таки находит другого, кто в отличие от тебя тянет проект. Всё, ты сосёшь.
2. Кабанчик перебирает программеров. Происходит кадровая чехарда. Никого не находит.
Тут ты тоже сосёшь, т.к. всё равно ты уволен. Но проблемы и у него. Насколько крупные, неизвестно.
2.1 Для кабанчика твой проект может оказаться не столь важным. И он попросту заморозит его развитие, а затем закроет. Т.е. он заведомо не будет серьёзно вкладываться в него. Пока деньги приносит - пусть живёт. А потом хуй с ним. Проект сольют. Ты тут опять сосёшь.
2.2 Кабанчик таки раскошеливается на серьёзные переделки. Ну вот тут ты более-менее выиграл.
Как видишь, шансы что ты будешь отсасывать совсем не маленькие. А кабанчик при деньгах, он заведомо в лучшей ситуации.
> кабанчику
> кабанчик
> кабанчик
> кабанчик
> кабанчика
> кабанчик
Молодцы, новое слово выучили.
Это Семён.
Это жизненный опыт, маня. Хотя и преувеличил канешн, всё не настолько ярко. Но суть верна. Все эти ваши рассуждения из книжек о том, что надо рефакторить, что надо выделять достаточно времени, что овертаймить плохо, что надо писать качественный код, и прочая прочая - всё это разбивается о реальность. Говнокода, говнопроектов и говноконтор дохуя. И это неспроста. Я уверен, есть определённые глубокие причины тому (в т.ч. экономические). И наверное, пожалуй для кучи проектов быть говном - оптимальное состояние. К несчастью программеров.
Уж столько раз писали везде, в т.ч. на хабре про то "как не следует вести проекты" что создаётся впечатление, что всё это делают очередные несчастные, дабы потом показать всяким (своим) боссам со словами "вот видите что умные люди говорят. отчего вы не следуете их мудрости?". И всё равно это нихуя не помогает и никого не убеждает.
>И наверное, пожалуй для кучи проектов быть говном - оптимальное состояние. К несчастью программеров.
Алло, какое это несчастье. Если всё делать сразу правильно и ровно, как же потом тогда кормиться на поддержке?
>Это тема отдельного срача, но для быстрого прототипирования альтернатив питону особо и нет. А где ещё можно по-быстрому написать на псевдокоде и сразу запустить?
Ruby
Так раскопали уже.
@
ЕХИДНЫЙ МАНАГЕР ВНОСИТ 10-УЮ ПРАВКУ, КОТОРАЯ НАМЕКАЕТ НА ТО ЧТО ПОЛОВИНУ КОДА ОПЯТЬ ПЕРЕПИСЫВАТЬ
@
ПЕРЕПИСЫВАЕШЬ, ОСТАЕТСЯ 2 ДНЯ
@
ОЙ, А ЕЩЕ ОКАЗЫВАЕТСЯ НУЖНО БУДЕТ ДОБАВИТЬ... НУ ВРОДЕ НЕМНОГО, СОРИ ЗАБЫЛИ ПРОСТ
@
ЗАДАЧА EDITED BY ЕХИДНЫЙ МАНАГЕР - +1000 ЗЕЛЕНЫХ СТРОЧЕК
> COBOL
private final native public volatile static transient synchronized protected abstract class FactoryFactoryFactoryFacade extends AbstractBuilderIteratorBeanDecoratorInterceptorFactoryFactory implements AbstractFactoryStrategyIteratorProxy, AbstractFactoryFactoryListener {
SingletonDecoratorAdapter singletonDecoratorAdapter = new SingletonDecoratorAdapter();
AbstractFactoryFactorySingletonBuilderProxy abstractFactoryFactorySingletonBuilderProxy = new AbstractFactoryFactorySingletonBuilderProxy();
VisitorBeanSingletonProxyAdvisorBuilderFactoryFactory visitorBeanSingletonProxyAdvisorBuilderFactoryFactory = new VisitorBeanSingletonProxyAdvisorBuilderFactoryFactory();
IteratorListenerBean iteratorListenerBean = new IteratorListenerBean();
AbstractAdvisorBuilderIteratorInterceptorSingletonFacadeStrategyDecorator abstractAdvisorBuilderIteratorInterceptorSingletonFacadeStrategyDecorator = new AbstractAdvisorBuilderIteratorInterceptorSingletonFacadeStrategyDecorator();
synchronized final private protected void setAdvisorFacadeObserverFactorySingletonBeanProxy(AdvisorFacadeObserverFactorySingletonBeanProxy advisorFacadeObserverFactorySingletonBeanProxy) {
this.advisorFacadeObserverFactorySingletonBeanProxy = advisorFacadeObserverFactorySingletonBeanProxy;
}
public synchronized static protected native volatile transient private void setAbstractIteratorFactoryFactoryFactoryBuilderSingletonInterceptorFacadeProxy(AbstractIteratorFactoryFactoryFactoryBuilderSingletonInterceptorFacadeProxy abstractIteratorFactoryFactoryFactoryBuilderSingletonInterceptorFacadeProxy) {
this.abstractIteratorFactoryFactoryFactoryBuilderSingletonInterceptorFacadeProxy = abstractIteratorFactoryFactoryFactoryBuilderSingletonInterceptorFacadeProxy;
}
native public static synchronized protected private transient final void setAbstractObserverAdvisorBeanStrategyAdapterListenerBuilderIterator(AbstractObserverAdvisorBeanStrategyAdapterListenerBuilderIterator abstractObserverAdvisorBeanStrategyAdapterListenerBuilderIterator) {
this.abstractObserverAdvisorBeanStrategyAdapterListenerBuilderIterator = abstractObserverAdvisorBeanStrategyAdapterListenerBuilderIterator;
}
protected public native synchronized final void setAbstractBuilderFactoryFactory(AbstractBuilderFactoryFactory abstractBuilderFactoryFactory) {
this.abstractBuilderFactoryFactory = abstractBuilderFactoryFactory;
}
static private protected volatile transient SingletonInterceptorAdvisorListenerBuilderFactoryFactoryFactory getSingletonInterceptorAdvisorListenerBuilderFactoryFactoryFactory() {
return this.singletonInterceptorAdvisorListenerBuilderFactoryFactoryFactory;
}
transient private final static public VisitorAdvisorFactoryAdapterProxy getVisitorAdvisorFactoryAdapterProxy() {
return this.visitorAdvisorFactoryAdapterProxy;
}
synchronized protected public final volatile private AbstractAdapterSingletonStrategyProxyBuilderInterceptorDecoratorListener getAbstractAdapterSingletonStrategyProxyBuilderInterceptorDecoratorListener() {
return this.abstractAdapterSingletonStrategyProxyBuilderInterceptorDecoratorListener;
}
public transient private AbstractListenerAdvisor getAbstractListenerAdvisor() {
return this.abstractListenerAdvisor;
}
public protected transient final synchronized volatile static native private AbstractListenerAdvisorProxySingletonFacadeStrategyFactoryAdapter abstractListenerAdvisorProxySingletonFacadeStrategyFactoryAdapter(ObserverDecoratorAdvisorAdapterBuilderSingletonFacade observerDecoratorAdvisorAdapterBuilderSingletonFacade, AbstractBeanInterceptor abstractBeanInterceptor, AdvisorFacadeSingletonDecoratorListener advisorFacadeSingletonDecoratorListener, AbstractAdapterAdvisorObserverListenerFactoryStrategyBeanBuilder abstractAdapterAdvisorObserverListenerFactoryStrategyBeanBuilder, AbstractBeanSingletonInterceptorDecoratorFactoryFactoryFactoryProxyObserver abstractBeanSingletonInterceptorDecoratorFactoryFactoryFactoryProxyObserver) {
decoratorProxyBean.setProxyAdvisorStrategyFactoryFactoryInterceptorFactoryAdapter(this.proxyAdvisorStrategyFactoryFactoryInterceptorFactoryAdapter);
return new AbstractListenerAdvisorProxySingletonFacadeStrategyFactoryAdapter();
}
transient native private final synchronized volatile protected static DecoratorSingletonIterator decoratorSingletonIterator(ObserverSingletonListenerFactoryFactoryBuilder observerSingletonListenerFactoryFactoryBuilder, VisitorDecoratorSingletonObserverFactory visitorDecoratorSingletonObserverFactory, AbstractFacadeBeanAdvisorAdapterSingletonProxyListenerFactoryFactory abstractFacadeBeanAdvisorAdapterSingletonProxyListenerFactoryFactory, FactoryVisitorProxyDecoratorListener factoryVisitorProxyDecoratorListener) {
factoryInterceptorListenerSingletonFacadeDecoratorAdapter.setAbstractBuilderDecorator(this.abstractBuilderDecorator);
InterceptorProxyFacade interceptorProxyFacade = new InterceptorProxyFacade();
abstractAdvisorAdapterVisitorBean.setAbstractAdapterObserver(this.abstractAdapterObserver);
abstractInterceptorListenerBuilderSingletonAdapterStrategyFactoryAdvisor.setAdvisorStrategyDecorator(this.advisorStrategyDecorator);
return new DecoratorSingletonIterator();
}
synchronized volatile private final protected public static native transient AbstractListenerFactoryFactoryDecoratorAdapterProxyInterceptorObserverFacade abstractListenerFactoryFactoryDecoratorAdapterProxyInterceptorObserverFacade(ObserverListenerBeanFactoryFactoryAdvisor observerListenerBeanFactoryFactoryAdvisor, ProxyObserverVisitorFactoryBuilderDecoratorStrategy proxyObserverVisitorFactoryBuilderDecoratorStrategy, AbstractBeanInterceptorObserverAdvisor abstractBeanInterceptorObserverAdvisor) {
abstractStrategyFactoryFactoryBeanVisitorBuilderSingleton.setAbstractIteratorVisitor(this.abstractIteratorVisitor);
AbstractListenerAdvisorSingletonObserver abstractListenerAdvisorSingletonObserver = abstractBuilderDecoratorVisitorFactoryBeanProxyFacadeSingleton.getAbstractAdapterProxyBuilderFacadeListenerAdvisorInterceptorFactory().getAbstractListenerAdvisorSingletonObserver();
return new AbstractListenerFactoryFactoryDecoratorAdapterProxyInterceptorObserverFacade();
}
volatile static transient public native protected AbstractListenerBuilderAdvisorProxyVisitorFacade abstractListenerBuilderAdvisorProxyVisitorFacade(DecoratorSingletonAdvisorFactoryInterceptorListenerBuilder decoratorSingletonAdvisorFactoryInterceptorListenerBuilder, AbstractDecoratorBuilderBeanListenerSingletonObserver abstractDecoratorBuilderBeanListenerSingletonObserver) {
AbstractObserverAdvisorBuilderIteratorFacadeFactoryFactoryFactoryAdapter abstractObserverAdvisorBuilderIteratorFacadeFactoryFactoryFactoryAdapter = new AbstractObserverAdvisorBuilderIteratorFacadeFactoryFactoryFactoryAdapter();
adapterAdvisorDecoratorFacadeProxy.setAbstractAdapterBeanDecoratorStrategySingletonFacadeListenerFactory(this.abstractAdapterBeanDecoratorStrategySingletonFacadeListenerFactory);
return new AbstractListenerBuilderAdvisorProxyVisitorFacade();
}
private final public static volatile transient synchronized protected InterceptorSingletonVisitor interceptorSingletonVisitor(AbstractDecoratorStrategyProxyObserverInterceptorBuilder abstractDecoratorStrategyProxyObserverInterceptorBuilder, AbstractVisitorAdvisorFacadeListener abstractVisitorAdvisorFacadeListener, VisitorFactoryFactoryBuilder visitorFactoryFactoryBuilder, VisitorProxyFacadeFactoryFactorySingletonAdvisorDecorator visitorProxyFacadeFactoryFactorySingletonAdvisorDecorator, AbstractAdvisorBuilderDecoratorInterceptor abstractAdvisorBuilderDecoratorInterceptor) {
AbstractProxyAdvisor abstractProxyAdvisor = abstractFactoryFactoryDecorator.getListenerInterceptorFactoryFactory().getAbstractProxyAdvisor();
AbstractVisitorAdvisorListenerStrategySingletonIteratorAdapterFactory abstractVisitorAdvisorListenerStrategySingletonIteratorAdapterFactory = new AbstractVisitorAdvisorListenerStrategySingletonIteratorAdapterFactory();
abstractBeanAdvisorSingletonInterceptor.setAbstractFactoryFactoryAdvisorFacadeStrategy(this.abstractFactoryFactoryAdvisorFacadeStrategy);
AbstractAdvisorProxyStrategyIteratorVisitorObserver abstractAdvisorProxyStrategyIteratorVisitorObserver = new AbstractAdvisorProxyStrategyIteratorVisitorObserver();
if (abstractSingletonFacadeFactoryObserver.isInterceptorListenerFacade()) {
iteratorProxyListenerFacadeBean.setAbstractStrategyBean(this.abstractStrategyBean);
AbstractFactoryDecoratorBeanFacadeAdapterProxyAdvisorVisitor abstractFactoryDecoratorBeanFacadeAdapterProxyAdvisorVisitor = abstractBeanInterceptorIteratorListenerFactoryFactoryStrategyProxyObserver.getAbstractObserverFacadeListenerSingletonProxyAdvisorStrategyVisitor().getAbstractFactoryDecoratorBeanFacadeAdapterProxyAdvisorVisitor();
abstractProxyBuilderVisitorSingleton.setIteratorAdvisorProxySingletonAdapter(this.iteratorAdvisorProxySingletonAdapter);
if (abstractDecoratorAdapterVisitorProxyObserverIteratorBuilderFactory.isDecoratorFactoryFactoryFacade()) {
visitorIteratorObserverProxyAdvisor.setAbstractObserverSingletonProxyAdvisorBuilderDecorator(this.abstractObserverSingletonProxyAdvisorBuilderDecorator);
singletonFacadeAdapterListenerFactory.setAbstractIteratorInterceptorSingletonListenerAdvisorDecoratorBuilderFactoryFactory(this.abstractIteratorInterceptorSingletonListenerAdvisorDecoratorBuilderFactoryFactory);
while (abstractFactoryAdapterSingletonFactoryFactory.isAbstractStrategyFactory()) {
abstractAdapterBeanStrategySingletonAdvisorBuilderListenerFactory.setAbstractStrategyFactoryFactoryFacadeBuilderFactoryIteratorProxyObserver(this.abstractStrategyFactoryFactoryFacadeBuilderFactoryIteratorProxyObserver);
abstractObserverAdapterFactoryFacadeDecoratorBuilderInterceptorFactoryFactory.setAdvisorIteratorFactoryProxyDecorator(this.advisorIteratorFactoryProxyDecorator);
while (abstractFacadeListenerStrategyIteratorAdvisorSingletonProxyObserver.isVisitorDecoratorInterceptorIteratorAdapter()) {
abstractProxyAdapterInterceptorObserverFactoryFactoryIterator.setSingletonFactoryFactoryProxyIteratorStrategy(this.singletonFactoryFactoryProxyIteratorStrategy);
singletonInterceptorDecorator.setAbstractFactoryFactoryListenerBuilderAdvisorDecoratorFacade(this.abstractFactoryFactoryListenerBuilderAdvisorDecoratorFacade);
visitorFactoryFactoryAdapterIteratorInterceptor.setAbstractIteratorVisitor(this.abstractIteratorVisitor);
}
}
} else {
abstractListenerInterceptorStrategyVisitorBeanFactorySingletonIterator.setAbstractProxyStrategy(this.abstractProxyStrategy);
abstractProxyInterceptorSingletonFactoryFactory.setAbstractSingletonIterator(this.abstractSingletonIterator);
}
} else {
singletonListenerFactoryFactoryIteratorProxy.setAbstractObserverProxyIteratorVisitor(this.abstractObserverProxyIteratorVisitor);
}
return new InterceptorSingletonVisitor();
}
native volatile static final public AbstractSingletonObserver abstractSingletonObserver(AbstractBuilderFacade abstractBuilderFacade, ListenerBuilderVisitorFactoryStrategyAdvisorFacade listenerBuilderVisitorFactoryStrategyAdvisorFacade) {
builderObserverIterator.setAbstractProxyBuilder(this.abstractProxyBuilder);
AbstractInterceptorAdapterFactoryAdvisorStrategyProxy abstractInterceptorAdapterFactoryAdvisorStrategyProxy = abstractDecoratorInterceptor.getStrategyObserverListenerVisitorBean().getAbstractInterceptorAdapterFactoryAdvisorStrategyProxy();
AbstractInterceptorListenerAdvisorVisitorProxyObserverStrategyIterator abstractInterceptorListenerAdvisorVisitorProxyObserverStrategyIterator = abstractFactoryIteratorStrategyVisitor.getAdvisorBuilderVisitorBeanIterator().getAbstractInterceptorListenerAdvisorVisitorProxyObserverStrategyIterator();
while (facadeStrategyObserver.isAbstractFactoryFactoryFactoryListenerVisitorIteratorSingletonBeanAdvisor()) {
abstractFactoryFactoryAdvisorFactoryInterceptorIteratorObserverProxyBuilder.setIteratorAdvisorBeanBuilderProxy(this.iteratorAdvisorBeanBuilderProxy);
AbstractIteratorFactoryFactoryFacadeObserverVisitorAdapter abstractIteratorFactoryFactoryFacadeObserverVisitorAdapter = new AbstractIteratorFactoryFactoryFacadeObserverVisitorAdapter();
abstractVisitorObserverBeanSingletonBuilderProxyFacadeIterator.setAbstractProxyFactoryAdapterFactoryFactoryInterceptorIterator(this.abstractProxyFactoryAdapterFactoryFactoryInterceptorIterator);
}
return new AbstractSingletonObserver();
}
transient volatile static private synchronized AbstractFactorySingletonFacadeProxyFactoryFactoryIterator abstractFactorySingletonFacadeProxyFactoryFactoryIterator(ObserverInterceptorAdapter observerInterceptorAdapter, AbstractInterceptorIteratorListenerFacadeDecoratorVisitor abstractInterceptorIteratorListenerFacadeDecoratorVisitor, FactoryDecoratorBeanAdapterProxy factoryDecoratorBeanAdapterProxy, SingletonAdvisorFacadeBuilderStrategy singletonAdvisorFacadeBuilderStrategy) {
AbstractBuilderIterator abstractBuilderIterator = new AbstractBuilderIterator();
iteratorSingletonDecoratorVisitorAdvisorFactoryFacade.setAbstractDecoratorAdapterListenerBuilderFacadeIterator(this.abstractDecoratorAdapterListenerBuilderFacadeIterator);
return new AbstractFactorySingletonFacadeProxyFactoryFactoryIterator();
}
synchronized volatile protected native private DecoratorStrategyBuilderListenerSingleton decoratorStrategyBuilderListenerSingleton(ObserverBuilderFactoryFactory observerBuilderFactoryFactory, AbstractStrategyDecoratorFacadeVisitor abstractStrategyDecoratorFacadeVisitor, AbstractAdapterIteratorListenerBuilderFactoryVisitor abstractAdapterIteratorListenerBuilderFactoryVisitor, AbstractVisitorObserverBuilderSingletonProxyIteratorListenerDecorator abstractVisitorObserverBuilderSingletonProxyIteratorListenerDecorator, AbstractStrategyFactoryFacadeVisitorListenerBean abstractStrategyFactoryFacadeVisitorListenerBean) {
advisorStrategySingleton.setAbstractSingletonObserverAdapterDecorator(this.abstractSingletonObserverAdapterDecorator);
return new DecoratorStrategyBuilderListenerSingleton();
}
}
> COBOL
private final native public volatile static transient synchronized protected abstract class FactoryFactoryFactoryFacade extends AbstractBuilderIteratorBeanDecoratorInterceptorFactoryFactory implements AbstractFactoryStrategyIteratorProxy, AbstractFactoryFactoryListener {
SingletonDecoratorAdapter singletonDecoratorAdapter = new SingletonDecoratorAdapter();
AbstractFactoryFactorySingletonBuilderProxy abstractFactoryFactorySingletonBuilderProxy = new AbstractFactoryFactorySingletonBuilderProxy();
VisitorBeanSingletonProxyAdvisorBuilderFactoryFactory visitorBeanSingletonProxyAdvisorBuilderFactoryFactory = new VisitorBeanSingletonProxyAdvisorBuilderFactoryFactory();
IteratorListenerBean iteratorListenerBean = new IteratorListenerBean();
AbstractAdvisorBuilderIteratorInterceptorSingletonFacadeStrategyDecorator abstractAdvisorBuilderIteratorInterceptorSingletonFacadeStrategyDecorator = new AbstractAdvisorBuilderIteratorInterceptorSingletonFacadeStrategyDecorator();
synchronized final private protected void setAdvisorFacadeObserverFactorySingletonBeanProxy(AdvisorFacadeObserverFactorySingletonBeanProxy advisorFacadeObserverFactorySingletonBeanProxy) {
this.advisorFacadeObserverFactorySingletonBeanProxy = advisorFacadeObserverFactorySingletonBeanProxy;
}
public synchronized static protected native volatile transient private void setAbstractIteratorFactoryFactoryFactoryBuilderSingletonInterceptorFacadeProxy(AbstractIteratorFactoryFactoryFactoryBuilderSingletonInterceptorFacadeProxy abstractIteratorFactoryFactoryFactoryBuilderSingletonInterceptorFacadeProxy) {
this.abstractIteratorFactoryFactoryFactoryBuilderSingletonInterceptorFacadeProxy = abstractIteratorFactoryFactoryFactoryBuilderSingletonInterceptorFacadeProxy;
}
native public static synchronized protected private transient final void setAbstractObserverAdvisorBeanStrategyAdapterListenerBuilderIterator(AbstractObserverAdvisorBeanStrategyAdapterListenerBuilderIterator abstractObserverAdvisorBeanStrategyAdapterListenerBuilderIterator) {
this.abstractObserverAdvisorBeanStrategyAdapterListenerBuilderIterator = abstractObserverAdvisorBeanStrategyAdapterListenerBuilderIterator;
}
protected public native synchronized final void setAbstractBuilderFactoryFactory(AbstractBuilderFactoryFactory abstractBuilderFactoryFactory) {
this.abstractBuilderFactoryFactory = abstractBuilderFactoryFactory;
}
static private protected volatile transient SingletonInterceptorAdvisorListenerBuilderFactoryFactoryFactory getSingletonInterceptorAdvisorListenerBuilderFactoryFactoryFactory() {
return this.singletonInterceptorAdvisorListenerBuilderFactoryFactoryFactory;
}
transient private final static public VisitorAdvisorFactoryAdapterProxy getVisitorAdvisorFactoryAdapterProxy() {
return this.visitorAdvisorFactoryAdapterProxy;
}
synchronized protected public final volatile private AbstractAdapterSingletonStrategyProxyBuilderInterceptorDecoratorListener getAbstractAdapterSingletonStrategyProxyBuilderInterceptorDecoratorListener() {
return this.abstractAdapterSingletonStrategyProxyBuilderInterceptorDecoratorListener;
}
public transient private AbstractListenerAdvisor getAbstractListenerAdvisor() {
return this.abstractListenerAdvisor;
}
public protected transient final synchronized volatile static native private AbstractListenerAdvisorProxySingletonFacadeStrategyFactoryAdapter abstractListenerAdvisorProxySingletonFacadeStrategyFactoryAdapter(ObserverDecoratorAdvisorAdapterBuilderSingletonFacade observerDecoratorAdvisorAdapterBuilderSingletonFacade, AbstractBeanInterceptor abstractBeanInterceptor, AdvisorFacadeSingletonDecoratorListener advisorFacadeSingletonDecoratorListener, AbstractAdapterAdvisorObserverListenerFactoryStrategyBeanBuilder abstractAdapterAdvisorObserverListenerFactoryStrategyBeanBuilder, AbstractBeanSingletonInterceptorDecoratorFactoryFactoryFactoryProxyObserver abstractBeanSingletonInterceptorDecoratorFactoryFactoryFactoryProxyObserver) {
decoratorProxyBean.setProxyAdvisorStrategyFactoryFactoryInterceptorFactoryAdapter(this.proxyAdvisorStrategyFactoryFactoryInterceptorFactoryAdapter);
return new AbstractListenerAdvisorProxySingletonFacadeStrategyFactoryAdapter();
}
transient native private final synchronized volatile protected static DecoratorSingletonIterator decoratorSingletonIterator(ObserverSingletonListenerFactoryFactoryBuilder observerSingletonListenerFactoryFactoryBuilder, VisitorDecoratorSingletonObserverFactory visitorDecoratorSingletonObserverFactory, AbstractFacadeBeanAdvisorAdapterSingletonProxyListenerFactoryFactory abstractFacadeBeanAdvisorAdapterSingletonProxyListenerFactoryFactory, FactoryVisitorProxyDecoratorListener factoryVisitorProxyDecoratorListener) {
factoryInterceptorListenerSingletonFacadeDecoratorAdapter.setAbstractBuilderDecorator(this.abstractBuilderDecorator);
InterceptorProxyFacade interceptorProxyFacade = new InterceptorProxyFacade();
abstractAdvisorAdapterVisitorBean.setAbstractAdapterObserver(this.abstractAdapterObserver);
abstractInterceptorListenerBuilderSingletonAdapterStrategyFactoryAdvisor.setAdvisorStrategyDecorator(this.advisorStrategyDecorator);
return new DecoratorSingletonIterator();
}
synchronized volatile private final protected public static native transient AbstractListenerFactoryFactoryDecoratorAdapterProxyInterceptorObserverFacade abstractListenerFactoryFactoryDecoratorAdapterProxyInterceptorObserverFacade(ObserverListenerBeanFactoryFactoryAdvisor observerListenerBeanFactoryFactoryAdvisor, ProxyObserverVisitorFactoryBuilderDecoratorStrategy proxyObserverVisitorFactoryBuilderDecoratorStrategy, AbstractBeanInterceptorObserverAdvisor abstractBeanInterceptorObserverAdvisor) {
abstractStrategyFactoryFactoryBeanVisitorBuilderSingleton.setAbstractIteratorVisitor(this.abstractIteratorVisitor);
AbstractListenerAdvisorSingletonObserver abstractListenerAdvisorSingletonObserver = abstractBuilderDecoratorVisitorFactoryBeanProxyFacadeSingleton.getAbstractAdapterProxyBuilderFacadeListenerAdvisorInterceptorFactory().getAbstractListenerAdvisorSingletonObserver();
return new AbstractListenerFactoryFactoryDecoratorAdapterProxyInterceptorObserverFacade();
}
volatile static transient public native protected AbstractListenerBuilderAdvisorProxyVisitorFacade abstractListenerBuilderAdvisorProxyVisitorFacade(DecoratorSingletonAdvisorFactoryInterceptorListenerBuilder decoratorSingletonAdvisorFactoryInterceptorListenerBuilder, AbstractDecoratorBuilderBeanListenerSingletonObserver abstractDecoratorBuilderBeanListenerSingletonObserver) {
AbstractObserverAdvisorBuilderIteratorFacadeFactoryFactoryFactoryAdapter abstractObserverAdvisorBuilderIteratorFacadeFactoryFactoryFactoryAdapter = new AbstractObserverAdvisorBuilderIteratorFacadeFactoryFactoryFactoryAdapter();
adapterAdvisorDecoratorFacadeProxy.setAbstractAdapterBeanDecoratorStrategySingletonFacadeListenerFactory(this.abstractAdapterBeanDecoratorStrategySingletonFacadeListenerFactory);
return new AbstractListenerBuilderAdvisorProxyVisitorFacade();
}
private final public static volatile transient synchronized protected InterceptorSingletonVisitor interceptorSingletonVisitor(AbstractDecoratorStrategyProxyObserverInterceptorBuilder abstractDecoratorStrategyProxyObserverInterceptorBuilder, AbstractVisitorAdvisorFacadeListener abstractVisitorAdvisorFacadeListener, VisitorFactoryFactoryBuilder visitorFactoryFactoryBuilder, VisitorProxyFacadeFactoryFactorySingletonAdvisorDecorator visitorProxyFacadeFactoryFactorySingletonAdvisorDecorator, AbstractAdvisorBuilderDecoratorInterceptor abstractAdvisorBuilderDecoratorInterceptor) {
AbstractProxyAdvisor abstractProxyAdvisor = abstractFactoryFactoryDecorator.getListenerInterceptorFactoryFactory().getAbstractProxyAdvisor();
AbstractVisitorAdvisorListenerStrategySingletonIteratorAdapterFactory abstractVisitorAdvisorListenerStrategySingletonIteratorAdapterFactory = new AbstractVisitorAdvisorListenerStrategySingletonIteratorAdapterFactory();
abstractBeanAdvisorSingletonInterceptor.setAbstractFactoryFactoryAdvisorFacadeStrategy(this.abstractFactoryFactoryAdvisorFacadeStrategy);
AbstractAdvisorProxyStrategyIteratorVisitorObserver abstractAdvisorProxyStrategyIteratorVisitorObserver = new AbstractAdvisorProxyStrategyIteratorVisitorObserver();
if (abstractSingletonFacadeFactoryObserver.isInterceptorListenerFacade()) {
iteratorProxyListenerFacadeBean.setAbstractStrategyBean(this.abstractStrategyBean);
AbstractFactoryDecoratorBeanFacadeAdapterProxyAdvisorVisitor abstractFactoryDecoratorBeanFacadeAdapterProxyAdvisorVisitor = abstractBeanInterceptorIteratorListenerFactoryFactoryStrategyProxyObserver.getAbstractObserverFacadeListenerSingletonProxyAdvisorStrategyVisitor().getAbstractFactoryDecoratorBeanFacadeAdapterProxyAdvisorVisitor();
abstractProxyBuilderVisitorSingleton.setIteratorAdvisorProxySingletonAdapter(this.iteratorAdvisorProxySingletonAdapter);
if (abstractDecoratorAdapterVisitorProxyObserverIteratorBuilderFactory.isDecoratorFactoryFactoryFacade()) {
visitorIteratorObserverProxyAdvisor.setAbstractObserverSingletonProxyAdvisorBuilderDecorator(this.abstractObserverSingletonProxyAdvisorBuilderDecorator);
singletonFacadeAdapterListenerFactory.setAbstractIteratorInterceptorSingletonListenerAdvisorDecoratorBuilderFactoryFactory(this.abstractIteratorInterceptorSingletonListenerAdvisorDecoratorBuilderFactoryFactory);
while (abstractFactoryAdapterSingletonFactoryFactory.isAbstractStrategyFactory()) {
abstractAdapterBeanStrategySingletonAdvisorBuilderListenerFactory.setAbstractStrategyFactoryFactoryFacadeBuilderFactoryIteratorProxyObserver(this.abstractStrategyFactoryFactoryFacadeBuilderFactoryIteratorProxyObserver);
abstractObserverAdapterFactoryFacadeDecoratorBuilderInterceptorFactoryFactory.setAdvisorIteratorFactoryProxyDecorator(this.advisorIteratorFactoryProxyDecorator);
while (abstractFacadeListenerStrategyIteratorAdvisorSingletonProxyObserver.isVisitorDecoratorInterceptorIteratorAdapter()) {
abstractProxyAdapterInterceptorObserverFactoryFactoryIterator.setSingletonFactoryFactoryProxyIteratorStrategy(this.singletonFactoryFactoryProxyIteratorStrategy);
singletonInterceptorDecorator.setAbstractFactoryFactoryListenerBuilderAdvisorDecoratorFacade(this.abstractFactoryFactoryListenerBuilderAdvisorDecoratorFacade);
visitorFactoryFactoryAdapterIteratorInterceptor.setAbstractIteratorVisitor(this.abstractIteratorVisitor);
}
}
} else {
abstractListenerInterceptorStrategyVisitorBeanFactorySingletonIterator.setAbstractProxyStrategy(this.abstractProxyStrategy);
abstractProxyInterceptorSingletonFactoryFactory.setAbstractSingletonIterator(this.abstractSingletonIterator);
}
} else {
singletonListenerFactoryFactoryIteratorProxy.setAbstractObserverProxyIteratorVisitor(this.abstractObserverProxyIteratorVisitor);
}
return new InterceptorSingletonVisitor();
}
native volatile static final public AbstractSingletonObserver abstractSingletonObserver(AbstractBuilderFacade abstractBuilderFacade, ListenerBuilderVisitorFactoryStrategyAdvisorFacade listenerBuilderVisitorFactoryStrategyAdvisorFacade) {
builderObserverIterator.setAbstractProxyBuilder(this.abstractProxyBuilder);
AbstractInterceptorAdapterFactoryAdvisorStrategyProxy abstractInterceptorAdapterFactoryAdvisorStrategyProxy = abstractDecoratorInterceptor.getStrategyObserverListenerVisitorBean().getAbstractInterceptorAdapterFactoryAdvisorStrategyProxy();
AbstractInterceptorListenerAdvisorVisitorProxyObserverStrategyIterator abstractInterceptorListenerAdvisorVisitorProxyObserverStrategyIterator = abstractFactoryIteratorStrategyVisitor.getAdvisorBuilderVisitorBeanIterator().getAbstractInterceptorListenerAdvisorVisitorProxyObserverStrategyIterator();
while (facadeStrategyObserver.isAbstractFactoryFactoryFactoryListenerVisitorIteratorSingletonBeanAdvisor()) {
abstractFactoryFactoryAdvisorFactoryInterceptorIteratorObserverProxyBuilder.setIteratorAdvisorBeanBuilderProxy(this.iteratorAdvisorBeanBuilderProxy);
AbstractIteratorFactoryFactoryFacadeObserverVisitorAdapter abstractIteratorFactoryFactoryFacadeObserverVisitorAdapter = new AbstractIteratorFactoryFactoryFacadeObserverVisitorAdapter();
abstractVisitorObserverBeanSingletonBuilderProxyFacadeIterator.setAbstractProxyFactoryAdapterFactoryFactoryInterceptorIterator(this.abstractProxyFactoryAdapterFactoryFactoryInterceptorIterator);
}
return new AbstractSingletonObserver();
}
transient volatile static private synchronized AbstractFactorySingletonFacadeProxyFactoryFactoryIterator abstractFactorySingletonFacadeProxyFactoryFactoryIterator(ObserverInterceptorAdapter observerInterceptorAdapter, AbstractInterceptorIteratorListenerFacadeDecoratorVisitor abstractInterceptorIteratorListenerFacadeDecoratorVisitor, FactoryDecoratorBeanAdapterProxy factoryDecoratorBeanAdapterProxy, SingletonAdvisorFacadeBuilderStrategy singletonAdvisorFacadeBuilderStrategy) {
AbstractBuilderIterator abstractBuilderIterator = new AbstractBuilderIterator();
iteratorSingletonDecoratorVisitorAdvisorFactoryFacade.setAbstractDecoratorAdapterListenerBuilderFacadeIterator(this.abstractDecoratorAdapterListenerBuilderFacadeIterator);
return new AbstractFactorySingletonFacadeProxyFactoryFactoryIterator();
}
synchronized volatile protected native private DecoratorStrategyBuilderListenerSingleton decoratorStrategyBuilderListenerSingleton(ObserverBuilderFactoryFactory observerBuilderFactoryFactory, AbstractStrategyDecoratorFacadeVisitor abstractStrategyDecoratorFacadeVisitor, AbstractAdapterIteratorListenerBuilderFactoryVisitor abstractAdapterIteratorListenerBuilderFactoryVisitor, AbstractVisitorObserverBuilderSingletonProxyIteratorListenerDecorator abstractVisitorObserverBuilderSingletonProxyIteratorListenerDecorator, AbstractStrategyFactoryFacadeVisitorListenerBean abstractStrategyFactoryFacadeVisitorListenerBean) {
advisorStrategySingleton.setAbstractSingletonObserverAdapterDecorator(this.abstractSingletonObserverAdapterDecorator);
return new DecoratorStrategyBuilderListenerSingleton();
}
}
> COBOL
Сразу повеяло семидесятыми, ретрофутуристичными ПК с 2 мегабайтами оперативной памяти, бородатыми байтоебами в свитерах...
Надеюсь, иде сам подставляет всю эту хуйню, и не приходится ручками писать
Потому что и так хорошо работает.
Каждый раз как первый
Там у abstractListenerAdvisorProxySingletonFacadeStrategyFactoryAdapter() не все аргументы использованы.
>ВНОСИТ 10-УЮ ПРАВКУ
Вы там что, совсем маленькие?
Каждые правки заносят в журнал, в котором указано, сколько было потрачено дополнительно времени на хотелки в отхождении от плана. Повышаете время, увеличиваете бюджет на х1.5 из-за скорости
@
НУЖНО ДЕРЖАТЬ ОТКРЫТЫМ СЛАК, ТЕЛЕГРАМ, СКАЙП, ХУЙНЮ ОТ МЕЙЛРУ, ХУЙНЮ ОТ ЯНДЕКСА, ЗУМ
@
ОТВЕТЫ ПЕРЕСЫЛАЕШЬ МЕЖДУ МЕССЕНДЖЕРАМИ СКРИНШОТАМИ
> СЛАК
Я раньше не любил слак, но теперь понял, что его красные и голубые точки в трее сильно облегчают жизнь. Голубые можно тупо игнорить, отключив всплывающие уведомления, поэтому проще сконцентрироваться на работе. Красные вылазят только в личке и при упоминаниях тебя. А в скайпе приходится чекать каждый раз, когда в трее видно уведомление. В принципе и в телеге, вроде работает, как в слаке, но ей мало кто пользуется на западе
Тащнмта голубые точки еще возникают, если тебя сначала в треде упомянули, ты красную точку чекнул, а потом в этот тред ищо написали. Только звук еще проигрывается
Можно на ОП-сообщении треда жмакнуть Unfollow thread и пусть там че хотят там пишут.
Не так давно для себя открыл
Пахую, пусть @ ставят, если прям я нужен.
ДА НУ НАХУЙ?
28-лвл-кун
@
В КОДЕ ИСПОЛЬЗУЕШ КОНСТРУКЦИЮ ВИДА "ЗАЛУПА"
@
НА РЕВЬЮ ТЕХЛИД ПРОСИТ НЕ ИСПОЛЬЗОВАТЬ ЕЕ
@
С ПОКЕРФЕЙСОМ ПЕРЕПИСЫВОЕШ
...
РЕВЬЮЕШЬ ТИКЕТ ТЕХЛИДА
@
ВИДИШЬ ПОДОБНУЮ КОНСТРУКЦИЮ ТИПА "ЗАЛУПА" У НЕГО В КОДЕ
@
УКАЗЫВАЕШЬ НА ЭТО
@
А, СЫЧЕВ, НУ ТЫ ЧЕ, ВСЕ Ж НОРМ, ОНО ЗДЕСЬ К МЕСТУ И ВООБЩЕ ЗБС РАБОТАЕТ, НУ
@
С ПОКЕРФЕЙСОМ АППРУВИШ
А
ЗАХОДИШ НА ПИАР
А
ОТКРЫВАЕШЬ БАЗАДАННЫХ ТРЕНД
А
НОВЫХ БУТКАМПОВ НЕТУ
А
ТРАМП СОБИРАЕТСЯ УТОНУТЬ
А
ПЕРЕКАТА НЕТ
А
У ТИБЯ БАЙЕС
А
ПИСОЕШЬ
ГОРИТ КРАСНАЯ ТОЧКА В ТРЕЕ
@
ОТКРЫВАЕШЬ СЛАК
@
КРАСНАЯ ТОЧКА МГНОВЕННО СМЕНЯЕТСЯ НА СИНЮЮ
@
ИЩЕШЬ УПОМИНАНИЕ НА ОТКРЫВШЕЙСЯ СТРАНИЦЕ
@
НИХУЯ НЕТУ
@
СКРОЛЛИШЬ ТУДА-СЮДА, ЗАХОДИШЬ ВО ВСЕ НОВЫЕ ТРЕДЫ И В СТАРЫЕ ДИАЛОГИ, ИЩЕШЬ ГДЕ ОНО МОГЛО БЫ БЫТЬ
@
НИХУЯ НЕТ
@
ПРОСТО СРАНАЯ ВЕБ ПАРАША ОПЯТЬ ГЛЮЧИТ
УШЕЛ НЕВЗНАЧАЙ В МАГАЗИН ЗА ПИВОМ
@
Попущенная голубая точка не стоит того, чтобы переживать
@
Попущенная красная точка - тоби пизда
Меня устраивают перекаты после 500. А то приходится держать тред в избранном и периодически чекать, потому что счётчик новых постов частенько тупит. Ну и когда тред на первой странице, он всем попадается на глаза, и здесь больше весёлых бугуртов.
Бывает. Часто упоминание бывает в тредах - их надо скролить, а не только смотреть самый первый. Вообще, они могли бы сделать эти точки и в сайдбаре. А сейчас чаты, где новые сообщения выделаются всего лишь жирным текстом, что не особо заметно. Это недоработка - согласен
Люблю держать 20 открытых вкладок бугурт-треда и предаваться ностальгии
Архив проебётся, придётся пилить continuous archivation.
@
ДВА ЧАСА ЖДЕШЬ ПОКА ТРАВИС ПРОГОНЯЕТ ТЕСТЫ
@
BUILD FAILING
@
ОТКРЫВАЕШЬ ЛОГ
@
FAILED ASSERTING THAT 7.56 IS EQUAL TO 7,56
@
ЖИДКО ПУКНУВ НАСТРАИВАЕШЬ ЛОКАЛИ
Надо перекатить.
java c# rust
Вы видите копию треда, сохраненную 7 апреля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.