All streams
Search
Write a publication
Pull to refresh
42
0
Алекс @hardtop

User

Send message

Получилось позитивно, хоть призыв "не ходить по граблям" совсем не выполнен, ибо сам натыкался на подобное много раз.

От себя добавлю, что стоит давать возможность доп. ответственности. Если есть способный сотрудник - хлопаешь его по плечу со словами: "Давай, сделай как ты говорил..." Иногда результат просто поражает, как человек расцветает в профессиональном плане.

Поясните, а почему для бека Питон плох? Ну вот пришёл на вход POST запрос. Или JSON ... {id:2, name:'bob', age: 28} - Ну ведь в любом случае, либо есть модель для проверки, или try-catch.

Или давайте так, а что хорошо для бека. Только не Java и не Net?

Когда мне было 22 (2000-е года), я работал в команде молодых разработчиков. И с нами был дядька 50+. Он нам годился всем в отцы, но с ним было невероятно легко общаться. Он никогда не ставил себя выше других. Спокойно признавался, если чего-то не знал. И у него был опыт. Такой, на кончиках пальцев. Мы прекрасно вместе ладили.

Сейчас мне 40+. И я понимаю, что часто софт-скилы даже важнее проф. знаний. Дорогой адвокат отличается от дешёвого своей известностью и спросом на себя. Я не думаю, что Илья Климов в 40+ будет иметь какие-то проблемы с трудоустройством https://www.youtube.com/c/JavascriptNinja

Да, предыдущую статью читал. Смотрите, постараюсь объяснить. Вы сделали своё логическое деление вещей, которое понятно Вам. Но чтобы другому человеку проникнуться этим - нужна внятная документация.

Сравнивая примеры того же бутстрапа, где есть variables.scss, миксины и стили, разбитые по компонентам и Ваши примеры, где есть тоже разбиение, но с другой логикой и под другим соусом - я не понял сильной разницы. Получилось сложно и запутанно.

А чем tailwind сильно отличается от inline-style внутри html? Как по мне - это дорога в ад, просто под другим названием и благими намерениями (красивым дизайном).

Какой-то очень водянистый способ изложения. Почему бы котов и прочие плакаты не заменить на сравнения "Плохо-хорошо" или "Было-стало"?

И чем так плохи flex-ы? Неужто float: left с clearfix-ами лучше? Да и pixel-perfect в эпоху адаптивной вёрстки и экранов разной плотности пикселей немного странное стремление. Тут надо с заказчиками и дизайнерами разговаривать. Обычно в 95% это работает.

Попытка написать супер-универсальную систему приводит к сильному смещению баланса "гибкость-шаблонность" в сторону шаблонности. Типа, бутстрапа. Да, накидать быстро что-то можно, но шаг влево - и ты роешься в документации и стековерфлоу. И это популярная вещь с доками, примерами и сообществом. Не просто так появился ненавистный Тейлвинд (хотя он мне тоже не нравится).

Сплошная "вода". Ребят, вы бы чуть больше конкретики что ли... И картинку "про диплом" кадрировали нормально.

Да потому что экосистема JS сумасшедшая. Мало того, что JS 2005 года разительно отличается от JS 2020 года. Я даже не говорю про Wat - к этому можно привыкнуть и смириться: https://www.destroyallsoftware.com/talks/wat

Так ещё jquery, TS\flow, babel, grunt, gulp, webpack, node (npm\yanr), deno, express, angular, react, vue, electron (и иже с ними). Часть из этого немодна, часть устарело, перед обновлением node.js лучше молиться всем богам, чтобы что-то не сломалось из пакетов...

А в python за это время print сделали функцией (утрирую, конечно). При этом pip install django как работал, так и работает с минимальными несовместимостями.

Спасибо за пояснение. А если перейти от микрофронта к микросервисам (маштабирование, все дела). И есть 2 физических сервера Пользователи (с авторизацией, набором прав и пр.) и Задачи (тоже с какими-то параметрами).

Вот при такой ситуации мы загружаем 2 компонента. Задачи ждут инициализации Пользователя, показывая скелет. И только получив данные от Пользователя Задачи достают нужные данные с сервера? Так?

Микрофронтенды — однозначное добро...

Сколько я не читал про микросервисы - всё же это для большого бизнеса с тучей серверов и тучей людей? В мелких проектах избыточно?

Да и не всегда понятно, как делить то? Пусть есть Пользователи с правами доступа, и есть Список задач. Не все пользователи должны видеть все задачи. В случае с классического подходом монолита мы в одном месте проверили Авторизацию пользователя, проверили Права и сделали выборку Задач, сгенерировали и отдали страницу.

Как правильно поступить в микросервисном мире? На странице уже 2 компонента. Один должен дождаться другого? А если компонентов 10?

Множество - это сколько? Учитывая, что поведение всё равно отображается браузером. Да, наверное, есть ещё состояние loading, или кнопка с выбором - но их нет в текущем описании и отображении.

Почему не оставить это всё в классах css?

Так выглядит код кнопки здорового человека:

И дальше 121 строка кода. Не кажется ли что это "немного" избыточно?

Отличная история. Если проследить, как видоизменяется обслуживание любого процесса, то получается:

  1. Делаем "как есть";

  2. Надо больше опций\контроля;

  3. Ад и царство микро-менеджмента;

  4. Так, давайте-ка всё упрощать.

Это нормально. Эдакий "цикличный водопад".

Когда говорят про быстрый прототип на Python (или php или js), то часто имеется ввиду не "большая команда на зарплате" а один-два человека делают MVP. Это подразумевает не только код, но и дизайн, верстку (layout), картинки\иконки и пр.

Простые языки хороши тем, что их могут использовать не только истинные программисты (которые драйвер для сетевой карты напишут), но и дизайнеры\верстальщики. И простой (тупой) императивный стиль позволяет достичь нужной задачи. Для меня if\else в несколько строк гораздо нагляднее, чем кидать эксепшен при агрегации в одной строке.

Я много раз писал стартапы, и многие вообще не взлетали. А те что взлетали - оптимизировали и они вполне работали. Ютуб на питоне сначала написали - потом поправили. Фейсбук на php - тоже оптимизировали. А вот Одноклассники сразу на java накодили... что, сильно быстрее или успешнее стали?

Признаю, хороший пример, хоть мы начинали с "коллекции чисел" а не с "какого-нибудь networkStream".

Ну и то, что lambda в питоне не может кинуть исключение - так во всех яп есть свои ограничения.

Ну, это немного не python-way

def check_equal(my_list):
    result = all(element == my_list[0] for element in my_list)
    if result:
        return my_list[0]
    else:
        raise Exception('Non equal')

Я так в юности писал на с++. Вернее, использовал подход си, но с cout << )))

ul {
li().text("One")
li().text("Two")
}

Правильно ли я понимаю, при необходимости поправить вёрстку, надо залезть в код Котлина, поправить, и скомпилировать?

...что все придется еще 10 раз переделать.

Да, работы ещё предстоит. По порядку:

Дизайн

  • Лого со странной разрядкой между A и С.

  • Дизайнера, видимо, вообще не было. Теория близости нарушается повсеместно (Первый баннер, выпадающее меню и пр., отступ по горизонтали мелкий по сравнению с отступом по вертикали). Кнопка "Подробнее" странного цвета (я понимаю, что это light от жёлтого, но выглядит бледно - словно disabled).

  • 2 шрифта в шапке (город + регистрация) - montserrat + din. В формах ещё и системный шрифт. Зачем так?

  • Закреплять верхний бар, который отжирает место по вертикали при массе 16:9 экранах - это mauvais ton.

Верстка

  • Иконки то мелкие png (отвратительно смотрятся на экранах с высоким ppi) то svg.

  • При регистрации ошибки не переведены на русский. Pop-up по дизайну вообще не соотносится с самой формой. Да и зачем отправлять форму, если не заполнен e-mail - ведь стоит же атрибут required.

  • Верстка текста странная - вот тут нужен ul li список, а не буллеты из ворда. И зачем для каждого <p> повторять class="spoiler__text_page_block__text_block"?

<p class="spoiler__text_page_block__text_block">
• расходные материалы для строительства и фасадных работ<br>
• комплектующие для опалубки стен и перекрытий<br>
  • a:hover{font-weight: bold} - плохая идея. Будет прыгать вёрстка в некоторых случаях

  • Цена либо руб. либо ₽. И &nbsp; тоже был бы не лишним.

Странные урлы. Есть https://marketplace.ace.su/catalog/zvezdochka-20-5 а есть https://marketplace.ace.su/catalog?ctg=2 - почему get параметр? Это ж не поиск и не фильтр

Даже для тестового варианта мало категорий товаров. Есть подозрение, что chain-фильтр разбухнет до неприличия.

Почему, кстати, не взяли какой-нить bootstrap? Да, было б не уникально, но гораздо более прилично.

Удачи!

У маркетплейса простой и интуитивно понятный интерфейс. 

Сам себя не похвалишь - никто не похвалит ;-)

Как показывает практика, с интерфейсом можно вообще не угадать. Всё равно после запуска системы будете переделывать\дорабатывать.

Список требований понятен. Но хоть бы скриншоты с тестовыми компаниями\товарами приложили для наглядности.

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity