C#8, .NET 5, DevSecOps, Azure Functions та мікросервіси на конференції .NET fwdays | Online

Прошу фідбеку (JS)

Вітаю усіх!
Нещодавно я брав участь у конкурсі UA Web Challenge. Робота була виконана за тиждень. На відбірковому етапі в номінації Junior JS в нас було завдання, яке ви можете побачити за цим посиланням: drive.google.com/...MTnpROEk/view?usp=sharing
Файл із FAQ: docs.google.com/...0aWAUGWMheEH3HeAZxkU/edit
(Якщо організатори проти викладання тексту завдання або FAQ, напишіть і я приберу посилання.)
Моє виконання роботи можна знайти тут:
github.com/kmrachko/guntt

Виконання декількох інших участників, що пройшли до півфіналу:
github.com/gdmitry/GanttChart
github.com/VeskeR/gantt-chart
(Виклав лише ті, що знайшов у відкритому доступі на github. Якщо роботу треба прибрати, напишіть мені.)

Сподіваюсь почути конструктивну критику — як моєї роботи в цілому, так і у порівнянні з прикріпленими. Заздалегіть дякую.

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Можете посоветовать литературу, которая учит «мыслить» на JS? Без особого синтаксического сахара (он все время меняется, насколько я понимаю), больше с реальными примерами архитектуры, проектирования и тестирования. Сейчас для себя проблему я вижу не в том, чтобы выполнить задачу, а как лучше её выполнить — иными словами, best practices. Заранее спасибо всем кто откликнется :)

Немного оффтоп: А вот подскажите, кто организатор вебчелендж? Случаем не ШАГ?
Просто недавно участвовали в конкурсе www.goldenbyte.org. Расписано на сайте конечно круто, а в итоге получилось все печально. Финал на базе Шага (комнатушки на 20 м2). Все судейство — это преподаватели Шага. Т.е. на счет не предвзятого судейства там я очень сомневаюсь.

Можно я свое имхо вставлю?

Константин, у тебя получился оверкодинг и фетиш на ООП: вернуть метод чтобы вернулся метод который вернет объект — вот так примерно это все читается.

С точки зрения рендеринга получается жесть. В смысле это понятно было что пойдет absolute и позиции x/y, но вставка целой батареи hr это слишком, можно же было как-то на CSS нарисовать эту сеточку.

По другим, Дмитрий который:
Он конечно подошел со стороны канваса, но его код нравится много больше т.к.:
— он меньше в разы
— отделен конфиг от контроллера
— названия функций понятный draw* / get*

Третьего запустить не удалось т.к. там сначала npm прокачать надо, потом grunt запустить и он свалился на:
Loading «connect.js» tasks...ERROR
>> Error: Cannot find module ’connect’
Loading «Gruntfile.js» tasks...ERROR
>> Error: Cannot find module ’browserslist’

Спасибо за ваше мнение! Согласен, я просто «свитчер» из C#, писал по долгу учебы огромный формальный проект и ООП просто впечаталось в кровь) Так много паттернов применил ради двух целей — обучения и причесывания логики кода к привычному в языках со строгой типизацией. Что хотелось бы мне самому отметить в своей работе — это больший функционал (группирование и резиновую шкалу), и рекурсивный алгоритм формирования графика (функция вызывает саму себя при прохождении всех чайлдов). Я надеялся, что именно алгоритмический подход отметят при оценке работы, и на него делал ставку, так как большими знаниями JS не обладаю — фактически, это моя первая на нем работа.

Штука в том все эти «задачки» видно издалека, примерно с первых строк «не использовать либы».
В жизни в 90% случаев задача стоит в духе взять лучшую и легчайшую из доступных либ и сделать так чтобы оно все сверкало и по-быстрее. По крайней мере я еще не видел проекты (кроме всяких гуглов/фейсбуков) у которых реализован весь спектр либ/плагинов/фич со своей коленки и ничего не ломается.

К рекурсивному подходу у меня отношение довольно отрицательное, единственный раз когда я его реально применял — при прохождении тестового задания «сделать подсчет чисел фибоначи» (вводишь индекс последовательности, получаешь результат). В нормальном программировании все методы делят на:
— init (создать что-то при запуске один раз)
— get (взять какие-либо данные)
— render (он же view он же что угодно чтобы вывести данные)

Я сам негативно смотрю на рекурсию в реальных проектах, это был по сути showcase, так как задача чисто синтетическая и методы решения аналогичны. Согласен в том, что это оторвано от реальности — но понять, как мыслит человек можно и по такой. Наверное, стоило не выделываться и следовать принципу KISS :)

Подписаться на комментарии