MacJei #12381 Posted December 5, 2024 Ritsu twit написал 1 час назад: scarppy написал 1 час назад: Ritsu twit написал 2 часа назад: scarppy написал 2 часа назад: Ritsu twit написал 3 часа назад: Залил корректней, мб может тут кто предоставить фидбэк по ошибкам и тому что бросается в глаза, архитектура, написание кода. Интересно где-то попробовать поработать в этом направлении, как правильно себя подать со знаниями в такой точки отсчета?https://github.com/egorloiola/gio-full ты реально думаешь с этим работу искать? Точно попробую да. эт очень слабо, без обид, тебя даже на стажировку не позовут ты просто силы потратишь на резюме и рассылку и словишь дизмораль лучше поучись отказы дизморалят оч Пессимистично, а что бы ты выучил на моем месте? По мне очень красиво, но я в этом ничего не понимаю, успехов и сил. Потом как будешь готов, попроси у скраппули расшарить твое резюме в линке, он там звезда. Ritsu twit likes this Quote "Мне надлежит наслаждаться над временем… пусть мир и ужаснется моей радости, и грубость его не поймет смысла слов моих." Рэйсбрук Удивительный Share this post Link to post
Kurku #12382 Posted December 5, 2024 (edited) надо шустрее анимации делать на блюр + свечение, оч долго ждать 600ms визуальный отклик на ссылки должен быть около мгновенный в пределах 100ms - 250ms делая увеличение до 200% всё скукоживается до неюзабельности я не думаю что идея была в том что кнопки друг на друга наезжают и что текст сверху и снизу обрезается так что его нельзя прочитать и проскролить ваще я тут когда возился с этим адаптивным дизайном я заметил что по-хорошему нужно делать после некого момента просто фиксированную вёрстку чтобы ничего никуда уже дальше не ужималось тем самым ты оставляешь таки возможность увеличить буковы/картинки людям которые хотят это делать с помощью ctrl+ а также гарантированно покрываешь юзкейсы всяких шизодейвайсов с маленьким экраном потому что они всё равно не могут это отрисовать никак, чтобы оно не было нахрен поломано и лучше им дать возможность просто скролить страничку туда сюда как в нулевые-десятые годы Edited December 5, 2024 by Kurku Quote Share this post Link to post
Just.Doit #12383 Posted December 5, 2024 scarppy написал 5 часов назад: Ritsu twit написал 5 часов назад: scarppy написал 5 часов назад: Ritsu twit написал 6 часов назад: scarppy написал 6 часов назад: Ritsu twit написал 7 часов назад: Залил корректней, мб может тут кто предоставить фидбэк по ошибкам и тому что бросается в глаза, архитектура, написание кода. Интересно где-то попробовать поработать в этом направлении, как правильно себя подать со знаниями в такой точки отсчета?https://github.com/egorloiola/gio-full ты реально думаешь с этим работу искать? Точно попробую да. эт очень слабо, без обид, тебя даже на стажировку не позовут ты просто силы потратишь на резюме и рассылку и словишь дизмораль лучше поучись отказы дизморалят оч Пессимистично, а что бы ты выучил на моем месте? ну хотя бы научись делать реальные приложения в плане отрисовал UI на основании ответа сервера фильтры, сортировки, роутинг, пагинация +тайпскрипт можешь там ещё загрузку фоток какую сделать или возможность ГС записывать, ну эт уже со звездочкой все равно это никто не посмотрит, ну хотя бы +- поймешь как это работает а ты сам css/верстку смог оценить? словил кринж от блюра ссылок в тексте Quote очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Share this post Link to post
Kurku #12384 Posted December 5, 2024 зачем-то еще pointer-events: none на футере в чём смысл ограничивать человека выделять текст не ясно это вроде всё таки не фон а контент Quote Share this post Link to post
Drakonian #12385 Posted December 5, 2024 (edited) Kurku написал 43 минуты назад: зачем-то еще pointer-events: none на футере в чём смысл ограничивать человека выделять текст не ясно это вроде всё таки не фон а контент напомнило сайты которые блокируют копирование текста которое обходится в консоли за пару секунд )) Edited December 5, 2024 by Drakonian Quote Share this post Link to post
Kant #12386 Posted December 5, 2024 нет, оно контрится закрытием вкладки и тем, что ты больше никода не зайдешь на эту парашу Olololnet, Arzanis, an7th3r and 2 others like this Quote Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Share this post Link to post
Tia #12387 Posted December 6, 2024 thousand cursed enemies написал 01.12.2024 в 01:52: Tia написал 30.11.2024 в 16:16: scarppy написал 30.11.2024 в 16:13: Tia написал 30.11.2024 в 15:50: UglyBastard написал 30.11.2024 в 15:40: Tia написал 30.11.2024 в 15:25: scarppy написал 14.11.2024 в 16:01: Надо врываться в казино какое и там строить карьеру других вариантов нету ну я с фронта чтобы иксануть по зп придерживаюсь плана доучить раст, web3/dao/huyao и ебануть в крипто темку фуллстеком за миллионы, ключевой момент чтобы платили не в скам коинах а в твердом зеленом Сейм мысли, а как ты планируешь учить и практиковаться в расте? У тебя есть телега? ну мне щас на проекте дали написать микросервис, я его сначала на ноде написал, потом глянул что контейнер жрет 800мб без нагрузки , глянул курс фастом от праймаджена (rust for typescript devs) вроде так называется, решил на расте пару задачек на литкоде и переписал, теперь контейнер 15 мб щас пока на работе загруз раст не практикую, а так по раст буку буду еще раз проходить, + решать литкод + смотреть на бэкенд на проекте, там есть растовые сервисы скок лет опыта? где трудишься? в кибербезе positive technologies, в районе 5 лет гдет Здарова мы тут с пацанами спорили. Сколько Редтимам в пт сварме платят. Я говорю что выше чем на рынке анальников. Ну тысяч 6-8 usd платят типо им. Подтверди или опровергни. На расте можно как на голанге с 0 депов пустой контейнер делать просто с mucl libc линковать надо. офк линукс контейнер т.к. Сисколы статичные . А че ты там на чем писал? Ну там какой то веб фреймворк есть чтоли на расте? Я смотрел как то давно там фреймворки уровня экспрес гс. Типо если ты на тс пишешь это скорее всего нест ну на расте вроде нет аналогов ему по удобству . Энивей это не пацанский язык если яйца есть боров чекер не нужен. В целом к положняку что ранее писал могу добавить что руст в ансейф блоке менее бабский язык чем цэ с классами. Цэ с классами это реально кал отвратительный который не работает. goto работает а raii параша не работает У кого яйца тоже есть те знают почему не работает. Эти два @Grohuf @GoldRobot не знают. Им мужское чуждо. здарова я хуй знает по зп из других направлений, у меня тима работает по ngfw, но пару челов спросил, сказали 5-7к и выше, зависит как договоришься Quote Share this post Link to post
Ritsu twit #12388 Posted December 6, 2024 Kurku написал 18 часов назад: надо шустрее анимации делать на блюр + свечение, оч долго ждать 600ms визуальный отклик на ссылки должен быть около мгновенный в пределах 100ms - 250ms делая увеличение до 200% всё скукоживается до неюзабельности я не думаю что идея была в том что кнопки друг на друга наезжают и что текст сверху и снизу обрезается так что его нельзя прочитать и проскролить ваще я тут когда возился с этим адаптивным дизайном я заметил что по-хорошему нужно делать после некого момента просто фиксированную вёрстку чтобы ничего никуда уже дальше не ужималось тем самым ты оставляешь таки возможность увеличить буковы/картинки людям которые хотят это делать с помощью ctrl+ а также гарантированно покрываешь юзкейсы всяких шизодейвайсов с маленьким экраном потому что они всё равно не могут это отрисовать никак, чтобы оно не было нахрен поломано и лучше им дать возможность просто скролить страничку туда сюда как в нулевые-десятые годы Часть по отклику даже не разбирал особо, бегло просматривал скорей какие значения по объему контента желательно не превышать. Там развертка от github идет, может данные цифры вообще с ней связаны, хз. По поводу увеличения это правда, вообще когда делал задрачивался именно на адаптацию под другие размеры экрана и т.далее, но по убыванию ты прав, надо учесть и увеличение маштаба в будущем. Kurku написал 18 часов назад: зачем-то еще pointer-events: none на футере в чём смысл ограничивать человека выделять текст не ясно это вроде всё таки не фон а контент Это с pointer-events: none мой косяк, уже убрал. Свойство нужно было для корректной работы анимации, фильтров, не с целью не дать скопировать информацию. Просто так вышло. Just.Doit написал 18 часов назад: scarppy написал 23 часа назад: Ritsu twit написал 05.12.2024 в 16:59: scarppy написал 05.12.2024 в 16:31: Ritsu twit написал 05.12.2024 в 16:02: scarppy написал 05.12.2024 в 15:42: Ritsu twit написал 05.12.2024 в 15:13: Залил корректней, мб может тут кто предоставить фидбэк по ошибкам и тому что бросается в глаза, архитектура, написание кода. Интересно где-то попробовать поработать в этом направлении, как правильно себя подать со знаниями в такой точки отсчета?https://github.com/egorloiola/gio-full ты реально думаешь с этим работу искать? Точно попробую да. эт очень слабо, без обид, тебя даже на стажировку не позовут ты просто силы потратишь на резюме и рассылку и словишь дизмораль лучше поучись отказы дизморалят оч Пессимистично, а что бы ты выучил на моем месте? ну хотя бы научись делать реальные приложения в плане отрисовал UI на основании ответа сервера фильтры, сортировки, роутинг, пагинация +тайпскрипт можешь там ещё загрузку фоток какую сделать или возможность ГС записывать, ну эт уже со звездочкой все равно это никто не посмотрит, ну хотя бы +- поймешь как это работает а ты сам css/верстку смог оценить? словил кринж от блюра ссылок в тексте Хех, мне пришла идея их заблюрить при наведении, и была прям мини-война, а получился обратный вау-эффект. Бывает, на любителя. Quote Share this post Link to post
Just.Doit #12389 Posted December 6, 2024 кароче я бы сказал ты возможно подосвоил верстку но это не профессия ты можешь либо идти в UX - рисковать дизайны в фигме и накидывать верстку но тогда тебе нужны художественные и UX навыки , либо во фронтенд разрабы - тогда тебе нужы (как написали выше) навыки разработки фронтент приложений (типа реакта) и привязка их к бекендам (делать колы, возможно аутентификация и тп, узнать про bff) без этого кажется мало смысла идти на рынок (максимум на стажировку куда берут способных стундентов, но такую хер найдешь) Ritsu twit likes this Quote очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Share this post Link to post
Kurku #12390 Posted December 6, 2024 (edited) Ritsu twit написал 4 часа назад: Kurku написал 20 часов назад: надо шустрее анимации делать на блюр + свечение, оч долго ждать 600ms визуальный отклик на ссылки должен быть около мгновенный в пределах 100ms - 250ms делая увеличение до 200% всё скукоживается до неюзабельности я не думаю что идея была в том что кнопки друг на друга наезжают и что текст сверху и снизу обрезается так что его нельзя прочитать и проскролить ваще я тут когда возился с этим адаптивным дизайном я заметил что по-хорошему нужно делать после некого момента просто фиксированную вёрстку чтобы ничего никуда уже дальше не ужималось тем самым ты оставляешь таки возможность увеличить буковы/картинки людям которые хотят это делать с помощью ctrl+ а также гарантированно покрываешь юзкейсы всяких шизодейвайсов с маленьким экраном потому что они всё равно не могут это отрисовать никак, чтобы оно не было нахрен поломано и лучше им дать возможность просто скролить страничку туда сюда как в нулевые-десятые годы Часть по отклику даже не разбирал особо, бегло просматривал скорей какие значения по объему контента желательно не превышать. Там развертка от github идет, может данные цифры вообще с ней связаны, хз. По поводу увеличения это правда, вообще когда делал задрачивался именно на адаптацию под другие размеры экрана и т.далее, но по убыванию ты прав, надо учесть и увеличение маштаба в будущем. Kurku написал 20 часов назад: зачем-то еще pointer-events: none на футере в чём смысл ограничивать человека выделять текст не ясно это вроде всё таки не фон а контент Это с pointer-events: none мой косяк, уже убрал. Свойство нужно было для корректной работы анимации, фильтров, не с целью не дать скопировать информацию. Просто так вышло. Just.Doit написал 20 часов назад: scarppy написал 05.12.2024 в 17:09: Ritsu twit написал 05.12.2024 в 16:59: scarppy написал 05.12.2024 в 16:31: Ritsu twit написал 05.12.2024 в 16:02: scarppy написал 05.12.2024 в 15:42: Ritsu twit написал 05.12.2024 в 15:13: Залил корректней, мб может тут кто предоставить фидбэк по ошибкам и тому что бросается в глаза, архитектура, написание кода. Интересно где-то попробовать поработать в этом направлении, как правильно себя подать со знаниями в такой точки отсчета?https://github.com/egorloiola/gio-full ты реально думаешь с этим работу искать? Точно попробую да. эт очень слабо, без обид, тебя даже на стажировку не позовут ты просто силы потратишь на резюме и рассылку и словишь дизмораль лучше поучись отказы дизморалят оч Пессимистично, а что бы ты выучил на моем месте? ну хотя бы научись делать реальные приложения в плане отрисовал UI на основании ответа сервера фильтры, сортировки, роутинг, пагинация +тайпскрипт можешь там ещё загрузку фоток какую сделать или возможность ГС записывать, ну эт уже со звездочкой все равно это никто не посмотрит, ну хотя бы +- поймешь как это работает а ты сам css/верстку смог оценить? словил кринж от блюра ссылок в тексте Хех, мне пришла идея их заблюрить при наведении, и была прям мини-война, а получился обратный вау-эффект. Бывает, на любителя. под откликом я имею в виду duration анимации а не время загрузки / скорость сайта не надо делать блюр 500-600ms по времени, нужно 100-200ms ты заставляешь ждать человека 500ms чтобы увидеть анимацию полностью но ничего на деле не происходит, происходит только блюр за 500ms, с целью показать что мы сделали hover, и это вызывает фрустрацию мы как бы мышкой двигаем быстрее чем у тебя анимация проигрывается если ты делаешь долгую анимацию то ты должен убрать у пользователя возможность взаимодействия, тогда это не раздражает а ощущается как нечто интенсивное/инертное это вот норм на кнопки на клавиатуре, на клик/даблклик но ограничивать пользователя из-за hover евентов это в целом не очень хорошая идея, потому что пользователь может случайно навести мышкой всё что hover — должно проигрываться быстро, а потом мейби idle анимация и такой же быстрый / чуть быстрее откат в исходное состояние Edited December 6, 2024 by Kurku Ritsu twit likes this Quote Share this post Link to post
Ritsu twit #12391 Posted December 6, 2024 Kurku написал 1 час назад: Ritsu twit написал 5 часов назад: Kurku написал 21 час назад: надо шустрее анимации делать на блюр + свечение, оч долго ждать 600ms визуальный отклик на ссылки должен быть около мгновенный в пределах 100ms - 250ms делая увеличение до 200% всё скукоживается до неюзабельности я не думаю что идея была в том что кнопки друг на друга наезжают и что текст сверху и снизу обрезается так что его нельзя прочитать и проскролить ваще я тут когда возился с этим адаптивным дизайном я заметил что по-хорошему нужно делать после некого момента просто фиксированную вёрстку чтобы ничего никуда уже дальше не ужималось тем самым ты оставляешь таки возможность увеличить буковы/картинки людям которые хотят это делать с помощью ctrl+ а также гарантированно покрываешь юзкейсы всяких шизодейвайсов с маленьким экраном потому что они всё равно не могут это отрисовать никак, чтобы оно не было нахрен поломано и лучше им дать возможность просто скролить страничку туда сюда как в нулевые-десятые годы Часть по отклику даже не разбирал особо, бегло просматривал скорей какие значения по объему контента желательно не превышать. Там развертка от github идет, может данные цифры вообще с ней связаны, хз. По поводу увеличения это правда, вообще когда делал задрачивался именно на адаптацию под другие размеры экрана и т.далее, но по убыванию ты прав, надо учесть и увеличение маштаба в будущем. Kurku написал 20 часов назад: зачем-то еще pointer-events: none на футере в чём смысл ограничивать человека выделять текст не ясно это вроде всё таки не фон а контент Это с pointer-events: none мой косяк, уже убрал. Свойство нужно было для корректной работы анимации, фильтров, не с целью не дать скопировать информацию. Просто так вышло. Just.Doit написал 21 час назад: scarppy написал 05.12.2024 в 20:09: Ritsu twit написал 05.12.2024 в 19:59: scarppy написал 05.12.2024 в 19:31: Ritsu twit написал 05.12.2024 в 19:02: scarppy написал 05.12.2024 в 18:42: Ritsu twit написал 05.12.2024 в 18:13: Залил корректней, мб может тут кто предоставить фидбэк по ошибкам и тому что бросается в глаза, архитектура, написание кода. Интересно где-то попробовать поработать в этом направлении, как правильно себя подать со знаниями в такой точки отсчета?https://github.com/egorloiola/gio-full ты реально думаешь с этим работу искать? Точно попробую да. эт очень слабо, без обид, тебя даже на стажировку не позовут ты просто силы потратишь на резюме и рассылку и словишь дизмораль лучше поучись отказы дизморалят оч Пессимистично, а что бы ты выучил на моем месте? ну хотя бы научись делать реальные приложения в плане отрисовал UI на основании ответа сервера фильтры, сортировки, роутинг, пагинация +тайпскрипт можешь там ещё загрузку фоток какую сделать или возможность ГС записывать, ну эт уже со звездочкой все равно это никто не посмотрит, ну хотя бы +- поймешь как это работает а ты сам css/верстку смог оценить? словил кринж от блюра ссылок в тексте Хех, мне пришла идея их заблюрить при наведении, и была прям мини-война, а получился обратный вау-эффект. Бывает, на любителя. под откликом я имею в виду duration анимации а не время загрузки / скорость сайта не надо делать блюр 500-600ms по времени, нужно 100-200ms ты заставляешь ждать человека 500ms чтобы увидеть анимацию полностью но ничего на деле не происходит, происходит только блюр за 500ms, с целью показать что мы сделали hover, и это вызывает фрустрацию мы как бы мышкой двигаем быстрее чем у тебя анимация проигрывается если ты делаешь долгую анимацию то ты должен убрать у пользователя возможность взаимодействия, тогда это не раздражает а ощущается как нечто интенсивное/инертное это вот норм на кнопки на клавиатуре, на клик/даблклик но ограничивать пользователя из-за hover евентов это в целом не очень хорошая идея, потому что пользователь может случайно навести мышкой всё что hover — должно проигрываться быстро, а потом мейби idle анимация и такой же быстрый / чуть быстрее откат в исходное состояние Занимательно, не думал в таком ключе, спасибо. Quote Share this post Link to post
madvlaydin #12392 Posted December 6, 2024 чет я не думал что тема с впн такая сложная окажется Quote Share this post Link to post
By sees #12393 Posted December 6, 2024 Ritsu twit написал 4 часа назад: Kurku написал 5 часов назад: Ritsu twit написал 9 часов назад: Kurku написал 05.12.2024 в 22:15: надо шустрее анимации делать на блюр + свечение, оч долго ждать 600ms визуальный отклик на ссылки должен быть около мгновенный в пределах 100ms - 250ms делая увеличение до 200% всё скукоживается до неюзабельности я не думаю что идея была в том что кнопки друг на друга наезжают и что текст сверху и снизу обрезается так что его нельзя прочитать и проскролить ваще я тут когда возился с этим адаптивным дизайном я заметил что по-хорошему нужно делать после некого момента просто фиксированную вёрстку чтобы ничего никуда уже дальше не ужималось тем самым ты оставляешь таки возможность увеличить буковы/картинки людям которые хотят это делать с помощью ctrl+ а также гарантированно покрываешь юзкейсы всяких шизодейвайсов с маленьким экраном потому что они всё равно не могут это отрисовать никак, чтобы оно не было нахрен поломано и лучше им дать возможность просто скролить страничку туда сюда как в нулевые-десятые годы Часть по отклику даже не разбирал особо, бегло просматривал скорей какие значения по объему контента желательно не превышать. Там развертка от github идет, может данные цифры вообще с ней связаны, хз. По поводу увеличения это правда, вообще когда делал задрачивался именно на адаптацию под другие размеры экрана и т.далее, но по убыванию ты прав, надо учесть и увеличение маштаба в будущем. Kurku написал 05.12.2024 в 22:51: зачем-то еще pointer-events: none на футере в чём смысл ограничивать человека выделять текст не ясно это вроде всё таки не фон а контент Это с pointer-events: none мой косяк, уже убрал. Свойство нужно было для корректной работы анимации, фильтров, не с целью не дать скопировать информацию. Просто так вышло. Just.Doit написал 05.12.2024 в 22:17: scarppy написал 05.12.2024 в 17:09: Ritsu twit написал 05.12.2024 в 16:59: scarppy написал 05.12.2024 в 16:31: Ritsu twit написал 05.12.2024 в 16:02: scarppy написал 05.12.2024 в 15:42: Ritsu twit написал 05.12.2024 в 15:13: Залил корректней, мб может тут кто предоставить фидбэк по ошибкам и тому что бросается в глаза, архитектура, написание кода. Интересно где-то попробовать поработать в этом направлении, как правильно себя подать со знаниями в такой точки отсчета?https://github.com/egorloiola/gio-full ты реально думаешь с этим работу искать? Точно попробую да. эт очень слабо, без обид, тебя даже на стажировку не позовут ты просто силы потратишь на резюме и рассылку и словишь дизмораль лучше поучись отказы дизморалят оч Пессимистично, а что бы ты выучил на моем месте? ну хотя бы научись делать реальные приложения в плане отрисовал UI на основании ответа сервера фильтры, сортировки, роутинг, пагинация +тайпскрипт можешь там ещё загрузку фоток какую сделать или возможность ГС записывать, ну эт уже со звездочкой все равно это никто не посмотрит, ну хотя бы +- поймешь как это работает а ты сам css/верстку смог оценить? словил кринж от блюра ссылок в тексте Хех, мне пришла идея их заблюрить при наведении, и была прям мини-война, а получился обратный вау-эффект. Бывает, на любителя. под откликом я имею в виду duration анимации а не время загрузки / скорость сайта не надо делать блюр 500-600ms по времени, нужно 100-200ms ты заставляешь ждать человека 500ms чтобы увидеть анимацию полностью но ничего на деле не происходит, происходит только блюр за 500ms, с целью показать что мы сделали hover, и это вызывает фрустрацию мы как бы мышкой двигаем быстрее чем у тебя анимация проигрывается если ты делаешь долгую анимацию то ты должен убрать у пользователя возможность взаимодействия, тогда это не раздражает а ощущается как нечто интенсивное/инертное это вот норм на кнопки на клавиатуре, на клик/даблклик но ограничивать пользователя из-за hover евентов это в целом не очень хорошая идея, потому что пользователь может случайно навести мышкой всё что hover — должно проигрываться быстро, а потом мейби idle анимация и такой же быстрый / чуть быстрее откат в исходное состояние Занимательно, не думал в таком ключе, спасибо. Да не занимательно, это душняк полный, делай как чувствуешь! Ещё бля про какой-то душняк про зум +- CTRL был, мол там у кого-то вёрстка съедет и пиздец. Я за целый год работы ни одной секунды в жизни не подумал об этой хуйне и всем поебать абсолютно. Только вот зашёл на продота ру, а тут чел который ни дня в жизни не работал рассказывает как надо бля идеальную страницу сверстать. Забей хуй короче, учи фреймворк какой-нить уже) А вёрстка у тебя уже отличная для макакыча, я 80% того что ты там юзал вообще не использовал никогда. Ritsu twit likes this Quote Share this post Link to post
Just.Doit #12394 Posted December 6, 2024 пришел говнокодер че ты малолетних совращаешь тут своей пошлятиной Quote очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Share this post Link to post
Lotus #12395 Posted December 7, 2024 Кто скока времени тратит на написание тестов на бэке я пишу код и как будто х2 времени от написания уходит на написание и правку ебаных тестов, а иногда и х3 Quote Share this post Link to post
Drakonian #12396 Posted December 7, 2024 смотря какие тесты наверное 99% времени я пишу интеграционные тесты (не вижу много смысла в юнит тестах) и трачу х2-х3 времени от разработки на это ) Для юнит тестов думаю число будет намного меньшим Quote Share this post Link to post
Lotus #12397 Posted December 7, 2024 Drakonian написал 35 минут назад: смотря какие тесты наверное 99% времени я пишу интеграционные тесты (не вижу много смысла в юнит тестах) и трачу х2-х3 времени от разработки на это ) Для юнит тестов думаю число будет намного меньшим :( чето я так заебался от этих тестов, код в кайф писать, а тесты это пиздец, еще хуева гора тестов с моделями в текстовых файлах и чето меняется приходится это везде менять, короче ебал я тесты в рот вот чо ну у меня тут принято писать интеграционные и юниты на все подряд типо маперов, сервисов, контроллеров, дао, хуяйо, короче на все подряд Quote Share this post Link to post
Drakonian #12398 Posted December 7, 2024 (edited) Lotus написал 28 минут назад: Drakonian написал 1 час назад: смотря какие тесты наверное 99% времени я пишу интеграционные тесты (не вижу много смысла в юнит тестах) и трачу х2-х3 времени от разработки на это ) Для юнит тестов думаю число будет намного меньшим :( чето я так заебался от этих тестов, код в кайф писать, а тесты это пиздец, еще хуева гора тестов с моделями в текстовых файлах и чето меняется приходится это везде менять, короче ебал я тесты в рот вот чо ну у меня тут принято писать интеграционные и юниты на все подряд типо маперов, сервисов, контроллеров, дао, хуяйо, короче на все подряд ну я такими тестами много багов отлавливаю, не раз было такое что пишу тест - он фейлится - смотрю действительно такой-то случай не учел или опечатался или тупо ошибку сделал тоже заебывают но польза несомненная от них но у меня щас халява, все тесты написал я вот когда команда пишет тесты и чужие тесты фейлятся, а тебе надо в них разобрать вот это кромешный пиздец тут с тобой согласен пример типичного теста) Скрытый текст [Test] [HandlerFunctions('GenericConfirmationHandler,GenericMessageHandler')] procedure PostRevenueLinesSalesInvoicesWithPartiallyProcessedCostLines() var CDSProject: Record "BBW CDS dw_project"; CDSTransaction: array[2] of Record "BBW CDS dw_transaction"; CDSTransaction2: Record "BBW CDS dw_transaction"; CDSPurchaseOrderNumber: array[2] of Record "BBW CDS dw_purchaseordernumber"; RevenueLine: Record "BBW Revenue Line"; Item: Record Item; CRMProduct: Record "CRM Product"; CRMAccount: array[2] of Record "CRM Account"; CRMAccount2: Record "CRM Account"; Customer: array[2] of Record Customer; CDSRevenueLine: array[5] of Record "BBW CDS dw_revenueline"; IntegrationTableMapping: Record "Integration Table Mapping"; Transaction: Record "BBW Transaction"; Customer2: Record Customer; SalesHeader: Record "Sales Header"; SalesLine: Record "Sales Line"; SalesInvoiceScheduling: Record "BBW Sales Invoice Scheduling"; SalesInvoiceHeader: Record "Sales Invoice Header"; SalesInvoiceLine: Record "Sales Invoice Line"; CustLedgerEntry: Record "Cust. Ledger Entry"; PurchAndPayableSetup: Record "Purchases & Payables Setup"; CDSCostLine: array[5] of Record "BBW CDS dw_costline"; Vendor: Record Vendor; TransactionLinesStatus: Codeunit "BBWT Transaction Lines Status"; ItemInventoryByDefault: Codeunit "BBWT Item Inventory By Default"; CRMCustomTables: Codeunit "BBWT CRM Custom Tables"; SalesInvoiceCard: TestPage "Sales Invoice"; SalesInvoiceSchedulingPage: TestPage "BBW Sales Invoice Scheduling"; InvoiceScheduling: Enum "BBW Invoice Scheduling"; TransactionNoFilter: Text; CustomerFilter: Text; I: Integer; J: Integer; N: Integer; begin // [FEATURE] [CRM Integration Management] [GenerateSalesInvoicesFromRevenueLinesForeground] // [SCENARIO] GenerateSalesInvoicesFromRevenueLinesForeground() Generate Sales Invoices based on Sales Invoice Scheduling in foreground Initialize(); LibraryVariableStorage.Clear(); SetupCRM(); InitProjectDimension(); PurchAndPayableSetup.Get(); PurchAndPayableSetup.Validate("BBW Enable PO Line Date", true); PurchAndPayableSetup.Modify(true); // [GIVEN] A Vendor coupled to CRM Account CreateCoupledVendorAndAccount(Vendor, CRMAccount2); //[GIVEN] Project in CRM CreateCDSProject(CDSProject, CRMAccount2.AccountId); // [GIVEN] Two Customers and CRM Accounts for I := 1 to 2 do begin Clear(CDSProject); LibraryCRMIntegration.CreateCoupledCustomerAndAccount(Customer[I], CRMAccount[I]); Customer[I].Validate("BBW Invoice Scheduling", InvoiceScheduling::Daily); Customer[I].Modify(true); //[GIVEN] Project in CRM CreateCDSProject(CDSProject, CRMAccount[I].AccountId); //[GIVEN] Create and synch ransaction to BC from CRM CreateCDSTransaction(CDSTransaction[I], CDSProject.dw_projectId); IntegrationTableMapping.SetRange(Name, 'BBWTRANSACTION'); IntegrationTableMapping.FindFirst(); CRMIntegrationTableSynch.SynchRecord(IntegrationTableMapping, CDSTransaction[I].dw_transactionId, true, false); //[GIVEN] Get result BC Transaction Transaction.SetRange(Project, CDSProject.dw_projectId); Transaction.FindFirst(); CreateCDSPurchaseOrderNumber(CDSPurchaseOrderNumber[i], CRMAccount2.AccountId, CDSProject.dw_projectId); N := 5; for J := 1 to N do begin Clear(Item); Clear(CRMProduct); //[GIVEN] Create coupled Item and Product BindSubscription(ItemInventoryByDefault); LibraryCRMIntegration.CreateCoupledItemAndProduct(Item, CRMProduct); UnbindSubscription(ItemInventoryByDefault); //[GIVEN] Create CDS Revenue Line CreateCDSRevenueLine(CDSRevenueLine[J], CDSProject.dw_projectId, CDSTransaction[I].dw_transactionId, CRMProduct.ProductId); //[GIVEN] Synch CDS Revenue Line to BC IntegrationTableMapping.SetRange(Name, 'BBWREVENUELINE'); IntegrationTableMapping.FindFirst(); CRMIntegrationTableSynch.SynchRecord(IntegrationTableMapping, CDSRevenueLine[J].dw_revenuelineId, true, false); CreateCDSCostLine(CDSCostLine[j], CDSProject.dw_projectId, CDSTransaction[i].dw_transactionId, CRMProduct.ProductId, CDSPurchaseOrderNumber[i].dw_purchaseordernumberId, Format(CDSTransaction[i].dw_status), CDSTransaction[i].dw_servicedate); //Simulate that cost lines are partially processed into PO and PO was posted if J > 2 then begin CDSCostLine[j].Validate(dw_bcponumber, LibraryRandom.RandText(20)); CDSCostLine[j].Modify(); end; end; RevenueLine.SetRange("Transaction No.", Transaction."Transaction No."); Assert.AreEqual(N, RevenueLine.Count(), ''); CustomerFilter += Customer[I]."No." + '|'; TransactionNoFilter += Transaction."Transaction No." + '|'; end; CustomerFilter := CustomerFilter.TrimEnd('|'); TransactionNoFilter := TransactionNoFilter.TrimEnd('|'); //[GIVEN] Sales Invoice Scheduling SalesInvoiceScheduling.Init(); SalesInvoiceScheduling.Insert(true); SalesInvoiceScheduling.Validate("Customer Filter", CustomerFilter); SalesInvoiceScheduling.Validate("Invoice scheduling Filter", InvoiceScheduling::Daily); SalesInvoiceScheduling.Validate("Service Date Formula Filter", '..0D'); SalesInvoiceScheduling.Validate(Active, true); SalesInvoiceScheduling.Modify(true); //[WHEN] Invoke and confirm Run once action LibraryDialogHandler.SetExpectedConfirm(ActionQst, true); LibraryDialogHandler.SetExpectedMessage(SynchSuccessLbl); SalesInvoiceSchedulingPage.OpenEdit(); SalesInvoiceSchedulingPage.GoToRecord(SalesInvoiceScheduling); BindSubscription(CRMCustomTables); SalesInvoiceSchedulingPage.Runonce_promoted.Invoke(); UnbindSubscription(CRMCustomTables); //[THEN] Simulate syncrhonize NOW Transaction.Reset(); Transaction.SetFilter("Transaction No.", TransactionNoFilter); Transaction.FindSet(); Assert.AreEqual(2, Transaction.Count(), ''); repeat RevenueLine.SetRange("Transaction No.", Transaction."Transaction No."); RevenueLine.FindSet(); repeat CRMIntegrationTableSynch.SynchRecord(IntegrationTableMapping, RevenueLine.RecordId(), true, false); until RevenueLine.Next() = 0; until Transaction.Next() = 0; //[THEN] Sales Invoices are created for each Customer and Sales Invoice No. is correctly updated to CRM Clear(RevenueLine); Customer2.SetFilter("No.", CustomerFilter); Customer2.FindSet(); Assert.AreEqual(2, Customer2.Count(), ''); repeat SalesHeader.SetRange("Document Type", SalesHeader."Document Type"::Invoice); SalesHeader.SetRange("Sell-to Customer No.", Customer2."No."); SalesHeader.FindSet(); repeat SalesLine.SetRange("Document Type", SalesHeader."Document Type"); SalesLine.SetRange("Document No.", SalesHeader."No."); SalesLine.FindSet(); repeat RevenueLine.Get(SalesLine."BBW Revenue Line No."); CDSProject.SetRange(dw_projectnumber, SalesLine."BBW Project No."); CDSProject.FindFirst(); Transaction.Get(SalesLine."BBW Transaction No."); Assert.AreEqual(CDSProject.dw_projectnumber, SalesHeader."BBW Project No.", ''); Assert.AreEqual(SalesHeader."BBW Project No.", SalesLine."Shortcut Dimension 1 Code", 'Global Dimension 1 should be equal to project'); until SalesLine.Next() = 0; //[WHEN] Sales Invoice is fully posted LibraryDialogHandler.SetExpectedConfirm(PostSalesInvoiceLbl, true); SalesInvoiceCard.OpenEdit(); SalesInvoiceCard.GoToRecord(SalesHeader); TransactionLinesStatus.SetHasUnpostedCostLines(true); BindSubscription(TransactionLinesStatus); SalesInvoiceCard.Post.Invoke(); UnbindSubscription(TransactionLinesStatus); //[THEN] Posted Sales Invoice is created SalesInvoiceHeader.SetRange("Pre-Assigned No.", SalesHeader."No."); SalesInvoiceHeader.FindFirst(); //[THEN] Transaction status should not updated to posted for each transaction because some unprocessed cost lines exist SalesInvoiceLine.SetRange("Document No.", SalesInvoiceHeader."No."); SalesInvoiceLine.FindSet(); repeat Transaction.Get(SalesInvoiceLine."BBW Transaction No."); //Because we cant run job queues in unit tests we simulate transaction synchronization manually IntegrationTableMapping.SetRange(Name, 'BBWTRANSACTION'); IntegrationTableMapping.FindFirst(); CRMIntegrationTableSynch.SynchRecord(IntegrationTableMapping, Transaction.RecordId(), true, false); CDSTransaction2.SetRange(dw_name, Transaction."Transaction No."); CDSTransaction2.FindFirst(); Assert.AreEqual(CDSTransaction2.dw_status::Received, CDSTransaction2.dw_status, 'status must be received!'); until SalesInvoiceLine.Next() = 0; //[WHEN] Customer Ledger Entry Generated CustLedgerEntry.SetRange("Document Type", CustLedgerEntry."Document Type"::Invoice); CustLedgerEntry.SetRange("Document No.", SalesInvoiceHeader."No."); CustLedgerEntry.SetRange("Posting Date", SalesInvoiceHeader."Posting Date"); CustLedgerEntry.SetRange("Customer No.", SalesInvoiceHeader."Sell-to Customer No."); CustLedgerEntry.FindFirst(); //[THEN] Project No. and Id filled in CDSProject.SetRange(dw_projectnumber, SalesLine."BBW Project No."); CDSProject.FindFirst(); Assert.AreEqual(SalesHeader."BBW Project No.", CustLedgerEntry."BBW Project No.", ',CustLedgerEntry."BBW Project No."'); Assert.AreEqual(CDSProject.dw_projectId, CustLedgerEntry."BBW Project Id", 'CustLedgerEntry."BBW Project Id"'); Assert.AreEqual(SalesInvoiceHeader."Your Reference", CustLedgerEntry."Your Reference", 'Customer PO No. is not corret'); Assert.AreEqual(SalesHeader."BBW Project No.", SalesHeader."Shortcut Dimension 1 Code", 'Global Dimension 1 should be equal to project'); until SalesHeader.Next() = 0; until Customer2.Next() = 0; end; Edited December 7, 2024 by Drakonian Darkd3ad likes this Quote Share this post Link to post
Just.Doit #12399 Posted December 7, 2024 Drakonian написал 2 часа назад: 99% времени я пишу интеграционные тесты как эти тесты устроены? Quote очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Share this post Link to post
Drakonian #12400 Posted December 7, 2024 Just.Doit написал Только что: Drakonian написал 2 часа назад: 99% времени я пишу интеграционные тесты как эти тесты устроены? тестируют бизнес сценарии которые затрагивают несколько разных модулей, иногда зависят от других ресурсов или не понять суть вопроса Quote Share this post Link to post