Уже почти три года проработал JS-кодером, миддл, ЗП — двушка (мне хватает вполне для жизни в недомиллионнике). Образование КН (Комп. науки), хоть диплом мне и нахуй не пригодился ВООБЩЕ БЛЯТЬ. Но не об это тред. У меня возникли след. вопросы. Нахуя люди понавыдумывали всякой хуйни, типа паттернов программирования? Нахуй, блять, нужны тесты? Типа пишешь код, потом его же, сука, покрываешь тестами, которые по сути являются ТЕМ ЖЕ КОДОМ БЛЯТЬ. Ну, блять, пишешь ты разные приколюхи странные с кучей разных методов, которые взаимодействуют там как-то с методами другого объекта, нахуя это гордо называть ещё одним «ПАТТЕРНОМ», м? Просто мне кажется, все эти ненужные ныне странные вещи были выдуманы раньше, людьми, которым нечем было больше заняться. А в тот период модно было всякого говна навешивать на код, чтоб выябываться: «ВОООООТ, МЫ ПРИМЕНЯЕМ ВОТ ТАКОЙ ПОДХОД, ТАКИЕ ПАТТЕРНЫ, И У НАС ЕСТЬ ТЕСТЫ»... Короче, долбоёбы, реально.
>>204744060 (OP)Расскажи, трудно ли было найти первую работу? Какие фреймворки юзаешь? Заебываешься ли на работе?
>>204744060 (OP)Ну и какой ты к хуям мидл, если у тебя такие вопросы? Тебя кто собеседовал, уборщица людка сракова?
Поэтому ты двушку и получаешь. Кури TDD, из-за таких как ты каждый третий проект под ноль переписывать приходится
Наверное. Я не разбираюсь, а ты вон 2к подымаешь. Явно больше смыслишь. Короче, даже не наверное, ты прав 100%. Я когда буду хорошо разбираться, то мое согласие тоже будет иметь вес.
>>204744060 (OP)>>Ты долбоеб просто, так или иначе ты будешь использовать паттерны знаешь ты об этом или нет. Рано или поздно ты поймешь что из года в годпишешь 1 и ту же хуйню на разных проектах. И патом почесав голову назовешь это паттерны. Просто типовые решения неизбежные которые нужны везде и все их используют всегда.А писать тесты пиши сначала тесты патом пиши код и для тебя будут тесты просто шаблоном того как нужно написать код как каркас и будет разрабатывтаь все гораздо проще
>>204744060 (OP)Да нет никаких паттернов, нет никакого кода, успокойся. Таблетки принял? Вот и молодец, иди спать ложись. Завтра бэкенд напишешь на JS.
>>204744060 (OP)На ремоте сидишь?За очень редкими иключениями пишу тесты на всякие изьебистые функции которые предназначены для работы с датами, сложными переобразованиями данных и прочего.Ну а так да, я сам охуеваю нахуя пишут на юай, формы и прочую хуйню тесты, тем более если есть пачка дармоедов в лице тестеров, лол, доебы уровня у тебя здесь пиксель сьехал)))) а патерны, ну хуй знает, ну вот взять ХАЙ ОРДЕР КОМПОНЕНТ это по сути пошло от так называемого паттерна ДЕКОРАТОР, взять рендер пропсы, ето тоже тебе патерн который позволяет функцию кидать как проп ну ты понел, или взять туже композицию компонентов, или взять редакс/мобх, продолжать не буду, шаришь да?
>>204744060 (OP)Как ты относишься к верстальщикам, которые задирают цены на свои сайты по 100к за верстку на ебаном вордпрессе с кастомной темой из интернета.
>>204746649> 3-4 доллара в час просятИ сколько выходит по окончанию проэкта? 10к? Это все равно дохуя. Они же тупо даже не верстают от начала до конца, а просто копируют уже свой развернутый сайт и меняют там тему. Еще менюшек через конструктор добовляют и все.
>>204744060 (OP)Ля, жиза отчасти. Сам работаю .NET + JS + SQL макакой 2 года, по паттернам тоже пригорает. Пригорает по всяким методологиям разработки, ибо скрам придуман лентяями, которые нихуя не делают и называют себя скрам мастерами получая зп в 2 раза больше разработчика. Оборачивать каждую, блять, строку в Dictionary - это полный пиздец. Даже если она используется в проекте один раз.Бизнес-логика в хранимых процедурах - ситуативный, но пиздец. То что я могу описать одной строкой в божественном C#, приходится делать на SQL используя костыльные курсоры и прочую хуйнюНо тесты нужны, иначе потом огребешь от своего же кода.
>>204746854сраммастеры, прожектманяжеры, продуковнеры которые познакомоству залетают в айти без знаний предметной области, это пзидец, но таковы реалии, сам в ахуе, по сути нихуя не делают бляди.Еще и зп рили выше чем у разРАБов.
Да ладно вам, в чем то оп и прав. Вот берём шарп и wpf, вместе с mvvm. Как было раньше, на винформ? На кнопку нажал, у тебя баттонклик дёрнул метод соответствующий. Как в впф? Надо, блядь, команду ебаную зачем то. Приделал команду, которая срабатывает при нажатии кнопки и при срабатывании дёргает метод. Сука, блядь! И в чем разница? Нахуя городить команду какую то, если можно сразу метод вызывать при нажатии?
>>204746854А ты вспомни интерфейсы, лол. Никто, блядь, толком объяснить не может нахуй они нужны, но упорно их пишут. Типо, реализация полиморфизма в шарпе это интерфейсы и чо? Мне это нахуя? Часто ты в коллекцию складываешь экземпляры разных классов с одним интерфейсом, анон? Вот только честно
>>204744060 (OP)Пиздец, да ты не мидол, ты недоджун, если задаешь такие вопросы. Тесты ему не нужны, охуеть просто.
Перекатывайся в микроконтроллеры/микропроцессоры,там все просто. Прочитал входа, обработал, выплюнул выхода, все
>>204747417Я знал разрабов одного проекта, там все было на мввм и покрыто тестами. Чтобы добавить элементарную херню они просили джва дня и реально джва дня работали, зато все тестами покрыто
>>204747556Когда проект живет много-много лет, покрытие кода тестами охуеть как помогает. Потому что люди на проект приходят и уходят, и без тестов там все сломается к херам, ведь никто толком не знает всех мелочей, отраженных в тесткейсах.
>>204747698>Когда проект живет много-много лет, покрытие кода тестами охуеть как помогаетИ как же это ща проекты на делфи до сих пор живут и поддерживаются? Наверное все тестами там покрыто, угу
>>204747097Чтобы твоя кнопка не зависела от метода. Интерфейсы до кучи, чтобы ты мог не имея метода протестить что будет вылезать команда и что она соберется делать
>>204747856Ага, в сообществе прогеров все тупые, один ты умный и понимаешь бесполезность тестов. Как ты думаешь, в каком случае в здоровом энтерпрайз проекте на запил фичи уйдет больше времени с учетом ловли багов - с тестами или без?
>>204747824Во дела, это, конечно, забавно слышатьБерем метод который принимает нечто и с ним работает, как ты будешь определять это нечто? Готовый класс напишешь? А если нужно другое нечто, что делать будешь?
>>204747873Передам в конструктор одного объекта другой объект?Не бей палками, это моё видение просто, я не программист даже как таковой
>>204748146У тебя получится сильносвязанный говнокод. Интерфейс позволяет иметь множество реализаций и не привязываться к конкретному классу, что часто пригождается.
>>204744060 (OP)В большинстве проектов нахрен не сдалось.Только избыточный синтаксический сахар.А вот все, что требует хай-левел алгоритмов, стабильности, надежности, минимальных задержек - вот там это востребовано.Сейчас вот приходится тестировать nosql, что бы работало за пару секунд, а не минут.
>>204748146Для этого тебе придется изменить первый объект, а иногда это не представляется возможнымЕсли аргументы реализуют интерфейс, то тебе просто нужно создать свой класс так же реализующий этот интерфейс и подпихнуть. А конструктор передавать это ты вообще пушка сказанул
>>204744060 (OP)>Нахуй, блять, нужны тесты?Оооооо, братишка, да ты долбоеб. Чем ты там только 3 года занимался?Возможно, жс-макаке этого не понять, но тут дело вот в чем.Допустим, имеется БОЛЬШОЙ сложный проект, полный различных сложных модулей, вероятно написанных даже разными людьми и в разные периоды времени.И тут надо внести изменение в модуль, наивный Васей Пукиным 3 года назад. Модуль не простой, а такой, от которого зависит весь остальной проект нахуй.Внимание, вопрос: Как быть уверенным, что изменение ничего не сломало в существующем коде? Что то, что уже написано, будет работать точно так же, как и до изменения?Вот для этого и нужны тесты.Если критические места кода ими покрыты, можно гораздо безопаснее внедрять в них изменения.А если что не так — тесты об этом сигнализируют.Например, бывает и так, что после изменения все вроде как работает, но на самом деле поломался какой-то компонент. И ты бы об этом без тестов вообще не узнал, а обнаружил, только когда код пезднулся на продакшене.Впрочем, прохождение тестов ещё не означает, что ничего не сломалось, ибо тестами почти всегда покрыт далеко не весь код и не все кейсы.Но если тесты составлены грамотно и покрыты хотя бы основные критические точки, это просто охуенно повышает надёжность системы.
>>204744060 (OP)> типа паттернов программированияТам челику нужно было диссер защитить, ну он и высрался с друзяшками. А потом хайпанули неслабо. В ойти модно на всякую хуету декадами ствол полировать, типа тоже наука.А тесты писать надо, чтобы иметь возможность тебя в любой момент безболезненно выпизднуть.
>>204748217Вот оно как, спасибо. Но насколько я понимаю, твой подход стоит использовать же только в каких-то крупных системах, в том же тырпрайзе, да? Нахера дрочь на все эти «связность без зацепления», если допустим приложуха одного разраба на Жабе менее пятиста строк кода?
>>204748325>А конструктор передавать это ты вообще пушка сказанулТак такое действительно есть, я даже на сраной википедии читал. Или это ненормально?
Пишу фронт и бек на жсе несколько лет, никогда не писал тесты, потому что в нормальных компаниях для этого нанимают хороших тестировщиков.
>>204748452Когда ты приучился юзать паттерны, то ты пользуешься ими всегда на автомате. Говнокодить для себя 500 строк это плохо, потому что такие же ошибки ты понесешь в проект на работе
>>204748008>Чтобы твоя кнопка не зависела от метода.Ух ты, то есть теперь она не зависит от метода, а зависит от команды, которая уже зависит от метода, бля, охуенно круто
>>204748524Могу ошибиться, но конструктор, это метод, вызываемый при создании объекта, при этом выделяется память под объект тыры пыры. Когда ты передаешь конструктор, что ты имеешь в виду? Что ты передаешь метод? Конструктор принадлежит классу, а не объекту, я хз, может в плюсах можно изъебнуться и сделать что-то с сылками, но обычно ты передаешь ссылку на объект, а не указатель на конструктор. Можешь конечно вызвать конструктор в месте передачи аргумента, но по приоритету выполнения операций соберется объект и передастся в метод, ты не можешь передать сам конструктор (молчу за плюсы, там чем черт не шутит)
>>204748724Сам себя поправлю: в тех же плюсах можно кидать указатели на функции итд, но тогда ты передаешь в функцию указатель, а не конструктор, и делаешь с ним что хочешь, хоть достаешь конструктор, хоть что. Но это уже передача указателя, обычная интовая переменная. я прост доебался до слов
>>204748034>, в сообществе прогеров все тупые, один ты умный и понимаешь И зачем же нужны команды в мввм?
>>204748034>Как ты думаешь, в каком случае в здоровом энтерпрайз проекте на запил фичи уйдет больше времени с учетом ловли багов - с тестами или без?Ща я как придумаю, как придумаю здоровый проект тырпрайз, а ты угадывай, что я загадал, угу? Давай рил задачу, либо иди на хуй, свои интерфейсы писать
>>204748596DI позволяет делать код модульным (слабосвязанным). Думаю не нужно пояснять про увеличенные затраты на изменение монолитного сильносвязанного кода.
>>204749007Какой ты конкретный. Небось тоже думаешь, что интерфейсы не нужны? Мысли абстрактно, здоровую энтерпрайзину представить себе наверняка можешь и без конкретики.
>>204749007А при чем тут придумывание задачи. Простой пример: сервак ты написал, который что-то дергает, или DAO. Всю функциональность нужно покрыть, то что данные приходят уходят корректно, стркктура збс и все. Потом тебе говорят, мол, мы меняем базу. Ты лезешь в адаптер dao меняешь базу туда сюда, запускаешь тесты - хуяк, не работает какая-то плюха. А что ты сделал? А нихуя, ты вручную не дергал методы, ничего не делал, просто запустил то что было. Тесты позволяют удовлетворять требованиям, особенно техническим из спецификации. Это все относится к тестированию и верификации программ и очень полезно
>>204744060 (OP)Какая нахуй двушка, кусок ты говна блядь? 20 000р? 200 000р? 2 000 000р? 2 доллара? 2 000 долларов? 20 0000 долларов? Хуесос блядь, я гадать что ли нахуй должен что ты высрал и что в твоей поехавшей голове блядь называется двушкой?
>>204749195Дали тебе либу, сказали - ебись, а там вот такой как ты додик не юзал интерфейсы и классы и поля заприватил. Ты нихуя не можешь менять и начинается анальная ебля типа refrection api в жабе, декомпиляции и копирования в кода к себе для переписывания. Вместо того чтобы просто уготованный интерфейс из этой либы релизовать и подпихнутьПорой кажется что зелени полон тред, я хуею
>>204749364Ну так говно либа, по-любому надо форкать, чинить и выкладывать на гитлаб. И насрать сверху!
>>204749453А с хуя ли она говно, если по твоей логике так либы писать и надо?)Если ты конечно тот самый анон, с которым я веду диалог
>>204744060 (OP)тесты сами по себе норм, не норм TDD , когда сначала пишешь етст а потмо код.это придумали пиздец уебки
>>204744060 (OP)Паттерны, чтобы потом джун, понимал, что ты там нахуевертил, когда тебя пидорнутНу а тесты, что не проверять каждый раз, сломалось ли что. Ну да, джаваскрипт макакам с их потешными модулями тесты ненужны
>>204749561Ты просто не встречал ситуации, когда без тдд написать код гораздо сложнее. Например, надо тебе замутить хитрый алгоритм с кучей корнеркейсов, что делать будешь? Если будешь в лоб писать код, то в итоге можешь на одном из них обосраться, да и задача, записанная в виде тесткейсов, становится понятнее.
>>204748217>что часто пригождаетсяПоследний раз когда пригодилось? Когда интерфейсы изучал на метаните?
>>204749524Конечно, не тот. Я бегаю по нулевой и ищу, до кого доебаться. Неужели не можешь сказать по манере речи?Алсо либы - это всегда совершенно особая тема с совершенно особыми подходами, рассматриваемая совершенно отдельно. Полноценный DI, конечно, не нужен даже там, но внятная структура наследования нужна. Вряд ли тот уёбок с этим попытается поспорить.
>>204749611Тесты надо писать так, чтобы тестировался интерфейс, а не реализация. Тогда тесты править не придется и получится ситуация ровно наоборот: в хэллоуворлдах оно нахер не надо, а вот в реальности может выручить.
>>204748409>>Допустим, имеется БОЛЬШОЙ сложный проект,Но не у тебя лично, конечно же. Сам ты в большом проекте никогда ничего не правил
>>204749815Простейший пример - нужно было поменять реализацию дао. И вместо переписывания всего кода, который использовал старую версию, я просто добавил новый класс, а старый удалил.
>>204750289Модуль - это просто определение куска структуры, какой-нибудь менеджер авторизации + пара классов к нему, что тебе не так?
>>204744060 (OP)>Образование КН (Комп. науки), хоть диплом мне и нахуй не пригодился ВООБЩЕ БЛЯТЬ. Но не об это тред. Попробуй не писать в резюме, что у тебя есть диплом.
>>204750289>Класс работает с %реализациянейм%>При каждом изменении %реализациянейм% нужно находить и исправлять каждый кейс его использования.>Мам, ну скажи что это так и надо.Отписал в манере дауна-гринтекстера
>>204750412>резюмеНикогда в жизни не писал резюме. Меня сами звали. Так что если ты его пишешь, то ты сам автоматический признаешь себя червём-пидором.
>>204750339Хехе, абстрактный класс имеет только одного наследника, тогда как реализует сразу несколько интерфейсов. Нормально там живется, если нужно сразу и serializable и cloneable, к примеру, отнаследуешься?
>>204750575Ты ОП? Скажи HR-рке, что у тебя нет образования. Пойдёшь на хуй в половине случаев. А если и опыта нет, то в любом случае пойдёшь.
>>204750728Один на все, охуенно здоровый? Чтоб на 5к строк? Толсто, зачем вообще модульную структуру придумали? Зачем-то по файлам и либам все, давайте в одном файле все писать, шобы ПРОГРАММА, одна такая, сурьезная, один класс, так и называть Программа_васяна_неосилятораЗелень, съеби
>>204744060 (OP)Удесятеряю. Сука, как же бесят ООП-дебилы, которые вводят хулиард терминов, чтобы казаться наукообразной областью, а на деле переусложняют каждую вторую задачу в сотни раз. Я не говорю, что ООП не нужно, но ООП-дебилы пихают его во всё, что можно как можно более "продвинутым" способом, хотя даже ёбаноая старинная процедурный код в этом месте получится многократно проще и короче.
>>204750887Без диплома можно было раньше, когда хрюш не существовало. Но сейчас они в каждой компании есть, и единственное, как они могут отсеивать, это по возрасту, опыту и образованию, так как никакие технологии они не знают и все твои знания для них пустой звук.Если нет диплома идёшь на хуй. Особенно если это что-то более-менее интересное, типа движки писать. Там требуют дипломы с естественнонаучных специальностей, не смотря на то что знать надо только линейку, которую за полгода можно выучить самостоятельно.
>>204750912А теперь сходи и погляди на классы мс, вот прямо в .нет фреймворке которые. А чо это они большие такие? А чо это они все умеют сами каждый? А давай раскидаем, чтобы у каждого класса было по джва метода, считая конструктор, вот тогда заябися будет
>>204751227Ты щас неиронически привёл в качестве эталона качества кода творчество мелкософтовцев? Срсли?
>>204744060 (OP)>ЗП - двушкаТебе квартирами что ли платят или что? Переведите кто-нибудь с замкадского плес
>>204751169>Если нет диплома идёшь на хуй. Особенно если это что-то более-менее интересное, типа движки писать. Там требуют дипломы с естественнонаучных специальностей, не смотря на то что знать надо только линейку, которую за полгода можно выучить самостоятельно.Какой ты фантазер. Я тебе говорю, что я не оп, вышки у меня нет, никогда не писал резюме и меня при этом звали сами на работу.Это были не госконторы, но если тебе так хочется попасть в гадюшатник на мелкописечную зарплату, то можешь отучиться в вузе. Всего 4 года. Тебе ведь все равно делать не чего?
>>204752035Кого-то не получающего профит пропорционально кривизне кода. Скорее всего, FOSS, причём не корпоративное говно.
>>204757174Че ты бампаешь, балбес, тут уже все объяснили, непонятен только факт как такая баклуша как ты с такими знаниями получил такой статус, либо ты кореш Невского, он тоже мистер вселенная
>>204749781TDD хорош тем, что код для уже написанных тестов можно доверить писать менее опытному коллеге, и если там не performance-critical часть - то даже рефакторить много не нужно будет, скорей всего. Насчет удобства корнеркейсов списком согласен, если тесты по-любому писать нужно, если нет - пишем списочком в блокнотике и не забываем добавлять код для корнеров в момент написания, хуяк-хуяк и в продакшн же.