Задать вопрос
  • Как организовать работу?

    mmmaaak
    @mmmaaak
    GitLab, там есть wiki для ведения документаций, есть issues для ведения задач, и отличный board для их удобного отображения, ну и собственно есть репозиторий для хранения проекта, для общения вне гитлаба: слак/скайп/телега
    Ответ написан
    Комментировать
  • Верстка с нуля: какие основные этапы работы?

    Vlad_IT
    @Vlad_IT Куратор тега Вёрстка
    Front-end разработчик
    Использую vscode+webpack+pug+scss+бэм. Из физических инструментов, основной моник: lg ultrawide 29um69g, рядом прикручен моник от ноутбука повешенный вертикально, подключенный через универсальный скаллер.

    0) Запускаю Spotify :-)

    1) Произвожу установку всех необходимых модулей для сборки. В моем случае у меня набор конфигураций для webpack (отдельные файлы для pug, scss, static и.т.д., выбираю что нужно).

    2) Запускаю avocode, загружаю в него макет. Определяю в нем переменные (в то же время записываю их, чтобы сразу кинуть в scss файл) для цветов, размеров шрифтов и.т.д. чтобы при получении кусочков кода из него, он сразу расставлял переменные.

    3) Запускаю VS Code, открываю нужную папку.

    4) Пишу размету на Pug. Пишу с БЭМ, если встречаю повторяющийся блок, то открываю файл _mixins.pug, в который пишу миксины для повторяющихся блоков, например товаров, пунктов меню, каких-то блоков и.т.д. Pug умеет делать циклы, это ускоряет сильно.

    5) Когда HTML готов, начинаю делать каркас. Если дизайн сделан по сетке, определяю контейнеры, колонки, строки в свои классы (не пишу в html тучи классов аля col-md-6, а пишу в SCSS инклуды в нужные мне блоки, типа @include make-col(2) и.т.д.).

    6) Экспортирую картинки из Avocode. Очень делается просто, указываю папку и просто кликаю экспорт и ввожу название файла и расширения. Преимущественно для иконок использую svg, если нет svg, то ищу эту иконку в интернете (дизайнеры редко рисуют иконки сами, но зато любят вставлять их не в векторе). Если иконка простая, могу сам ее в inkscape обвести, ну и если нет, то экспортирую png в размере (благо авокод это позволяет, если конечно дизайнер не вставил в исходном маленьком размере). Когда есть контакт с дизайнером, трясу его, ибо растр это плохо для иконок.

    7) Пишу стили блоков из страницы. На этом этапе можно на втором монике параллельно смотреть футураму или
    Арчера :-) Но чаще на широком монике слева браузер, справа VS Code, а на втором монике Avocode (может меняться местами с браузером). Мысленно нарезаю страницу на блоки. Для каждого блока (БЭМ) создаю отдельный scss файл (кто-то даже для элемента создает, но мне лень), из него сразу выписываю все селекторы. Иногда могу сначала выписать все селекторы со страницы (но так лучше не делать, т.к. во время работы может потребоваться изменить что-то в разметке), но чаще для одного блока выполняю этот пункт и за ним сразу выполняю пункт 8, потом для нового блока опять 7 и 8 и.т.д.

    8) Пишу css код вместе с Avocode, у него беру нужные мне параметры (а он уже подставил в них переменные), и вставляю в мой код. И параллельно сверяю со скрином макета используя вот это расширение https://chrome.google.com/webstore/detail/perfectp...

    9) Пишу адаптив. Я не могу привыкнуть к методологии mobile-first, поэтому пишу всегда сначала полную версию сайта. Я понимаю, что это чревато всякими проблемами и это типа не модно, но мне норм.

    10) Медиа-запросы пишу прямо в блоках, для каждого блока/элемента/модификатора может быть отдельный медиа-запрос. Но для начала определяю breakpoint'ы для разных экранов (чтобы их не было сотни разных), если использую Bootstrap, то беру его breakpoint'ы.

    11) Добавляю анимашки. Даже если заказчик не просил отдельно (и если не указал отдельно, что нельзя), он все равно будет доволен, а с animate.css+onscreen.js это вообще работа 10 минут. Сложные анимации обговариваю отдельно, чтобы не сделать ненужную работу.

    11) Все снова сверяю, пишу скрипты где надо. Для слайдеров в 99% случаев подходит slick (с доработками конечно, но там хорошее API), для других случаев могу написать свой.

    12) Сдаю заказчику и жду ответа сидя на тостере/пикабу.

    Это чисто мой опыт, опыт фрилансера, не знаю, как делают другие и не могу на 100% утверждать что это 100% правильный способ. Я так и не смог заставить свой конфиг webpack правильно вставлять спрайты svg.
    Надеюсь чем-то поможет мой ответ.
    Ответ написан
    7 комментариев
  • Дизайн с нуля: какие основные этапы работы?

    lukoie
    @lukoie
    0 заводим асану, и гуглодокс-папку в "проектах" под проект
    1 берем из шаблонов заготовку для брифа и клиент заполняет
    2 создаем на его основе ТЗ и утрясаем с заказчиком(ЛПР)
    3 создаются эскизы страниц
    4 на их основе - мокапы
    5 на их основе - вайрфрейм
    6 прототип
    7 создается окончательный продакшн дизайн
    8 проводится ДТП, допиливается всё по внутренним стандартам(именование слоев, группы, название файлов, лишний мусор внутри и т.п.)
    9 чистится файловый мусор и бекапится
    10 передаем заказчику окончательный вариант

    теперь пару(но далеко не все) деталей:
    - именование макетов важно
    - пункты в районе 4-6 в зависимости от величины проекта - опциональны
    - в зависимости от задач между 3 и 4 может быть пункт схема юзерфлоу, или визуальная доска связей между экранами, если проще
    - на выходе может(а может и нет) формироваться юайкит и фирменный стиль в той или иной компоновке.
    Ответ написан
    Комментировать
  • Как вернуть названия всех полей класса?

    EreminD
    @EreminD
    Кое-что умею
    Что-то в этом духе: https://stackoverflow.com/questions/237275/how-can...

    Type type = obj.GetType();
    
        foreach (var f in type.GetFields().Where(f => f.IsPublic)) {
            Console.WriteLine(
                String.Format("Name: {0} Value: {1}", f.Name, f.GetValue(obj));
        }
    Ответ написан
    Комментировать
  • Английский для программиста или на что лучше ставку сделать?

    gobananas
    @gobananas
    finishhim.ru
    правильно ли я сделал бросив все свободное время только на английский

    Нет, не правильно (имхо). В один момент времени у вас может быть только 1 цель (либо изучение английского, либо изучение программирования).

    Вы сейчас выбрали английский. Ок. Язык это не цель, а средство. Для чего вы будете использовать это средство? Что бы учить программирование? Ок. Тогда почему бы сразу не взять эту книгу по С + словарь и не совместить? Слишком сложно? Хорошо, возьмите книгу на английском из разряда "Устройство ПК" или типа Биты и байты для новичков и просто прочитайте её на английском со словарём переводя каждое непонятно слово. А потом уже за С сядете.

    Долго? А что делать... Вот прекрасная статья недавно вышла как чувак десятки тысяч долларов на изучение английского потратил https://vc.ru/34462-lichnyy-opyt-kak-ya-potratil-d... там пишут что 4 часа в день каждый день = английский за 3-4 месяца. У вас час в день, это значит около года...

    P.S. При таком семейном положении думаю проще (быстрее) искать источник повышения дохода в русскоязычном сегменте, а потом уже как стабилизируетесь - займётесь английским.
    Ответ написан
    1 комментарий
  • Как работают Логические выражение?

    EreminD
    @EreminD
    Кое-что умею
    Вот так вота

    Выполните
    int x = 1984;
    int y = 2001;
    string binaryX = Convert.ToString(x, 2);
    string binaryY = Convert.ToString(y, 2);
    Console.WriteLine("binaryX = " + binaryX + "; binaryY = " + binaryY);
    x ^= y ^= x  = y;
    Console.WriteLine("x = " + x + "; y = " + y);


    binaryX и binaryY - это представления чисел в двоичном коде
    Оператор ^ берет два числа делает побитовое исключающее или
    Оператор ^= выполняет исключающее или для левого и правого аргумента и записывает результат сразу в левый (как операторы *=, += и т.д.)

    Что касается хвоста x = y, то нужно помнить, что оператор = тоже возвращает значение. Для проверки:
    int a;
    Console.WriteLine(a = 3);


    Ну и не забывайте про приоритет выполнения операций
    Ответ написан
    3 комментария
  • Когда пишу функцию. Как понять - когда создавать для нее класс, а когда написать ее в классе типа Helper (т.е. классе для вспомогательных ф-ий)?

    Griboks
    @Griboks
    Если функцию можно обобщить на несколько неродственных классов, используемых в программе, то она является "вспомогательной".
    Ответ написан
    3 комментария
  • Неплохо знаю WP но зарабатываю мало, что делаю не так?

    alex-1917
    @alex-1917
    Если ответ помог, отметь решением
    ППЦ, вот кто обваливает рынок!!
    Магазин будет приносить прибыль владельцу, а вы скромняшка, боитесь цену загнуть, будто делаете личную страничку васи пупкина.
    Если бизнес не может купить себе инет-магазин за хотя бы 40к рубасов, то по сути такой бизнес и не нужен никому, он загнется через пару месяцев с таким скупердяйством! Там же еще надо будет продвигать, работать скорее всего в соц. сетях и т.д.
    А вы своей скромностью только увеличиваете энтропию, висят потом такие дохлые магазины годами, пока домен не забудут продлить...
    Магазин на минималке с версткой всех страниц меньше 120к не делаю, средняя 200-300к, с полной настройкой (доставка, геопривязки, скидки, накопительные, личные кабинеты, промокоды, связи товаров и т.д.) - это тебе на будущее ориентир!
    Ответ написан
    6 комментариев
  • Генерирование документации в Visual Studio из коментариев?

    AlexanderYudakov
    @AlexanderYudakov
    C#, 1С, Android, TypeScript
    Напрашивается написать сервис, который будет брать на входе:
    - список .Net сборок, по которым нужно построить документацию;
    - список соответствующих им файлов xml-документации.

    И выдавать на выходе (с помощью Reflection):
    1) иерархическую структуру сайта в виде:
    - namespace / class / method, property
    2) контент каждого узла, состоящий из данных, полученных через тот-же Reflection + текст, полученный из xml-документации.

    Образец архитектуры такого сервиса здесь:
    services.msdn.microsoft.com/ContentServices/Conten...
    (это MSDN Library так построена)
    Ответ написан
    Комментировать
  • Генерирование документации в Visual Studio из коментариев?

    maaGames
    @maaGames
    Погроммирую программы
    doxygen + graphviz для красивых диаграмм. Работает напрямую с кодом и не требует предварительного создания XML. Погуглите, очень хорошая программа.
    Ответ написан
    Комментировать
  • Как правильно собирать временные метрики?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    наброски к теме - https://i.imgur.com/xo1QmBg.png

    ps .. в смысле фрагмент из продакшена ;)) .. ~90% функций во фрагменте собственные расширения, так что не ищите прямых аналогов (той же .log() - это тоже собственное расширение для string), просто общая суть ))

    pps .. вариант реализации .log()

    internal static void log(this string txt) => tbLog.AppendText(txt + Environment.NewLine);

    ;))
    Ответ написан
    1 комментарий
  • Вопрос организации архитектуры. Производительность или поддерживаемость?

    @rodion11
    php dev
    При выборе между читаемостью и эффективностью, лучше выбирать читаемость.
    Преждевременная оптимизация зло:
    - угадать где будет узкое место не всегда возможно
    - оптимизация занимает время
    - код усложняется

    В случае работы с HTTP, расходы на соединения, загрузку данных обычно отъедают большее время работы и скорость кода практически не влияет. (конечно все индивидуально и зависит от задачи)
    Ответ написан
    Комментировать
  • Вопрос организации архитектуры. Производительность или поддерживаемость?

    Griboks
    @Griboks
    Вы слишком помешаны на принципах программирования. Это хорошо только в "тяжёлых" больших проектах, но сильно портит маленькие приложения. Любые конструкции нужно вводить по мере необходимости, а не потому что так красиво и правильно.
    Ответ написан
    Комментировать
  • Вопрос организации архитектуры. Производительность или поддерживаемость?

    @DoctorPro
    Просчитайте, а есть ли плюсы от такой архитектуры, SIP, как и другие принципы разработки это, конечно, ориентир, но это не значит, что под условный helloworld надо создавать кучу абстракций в соответствии с принципами. Есть и другие принципы, например, KISS (Keep it simple). Если вы не видите явных плюсов, то может и не надо много абстракций
    Ответ написан
    Комментировать
  • Вопрос организации архитектуры. Производительность или поддерживаемость?

    qonand
    @qonand
    Software Engineer
    Не стоит зацикливаться на принципах и слепо им следовать. Выбирать между производительностью и поддерживаемостью всегда стоит исходя из особенностей проекта. Стоит задуматься насколько вообще важна поддерживаемость в конкретном проекте и насколько ее могут ухудшить решения улучшающие производительность. Если проект мелкий или разрабатывается как какое-то временное решение, тогда маловероятно что производительный код сильно ухудшить поддерживаемость. Если же проект большой и в будущем в него будут активно вноситься изменения - стоит предпочесть поддерживаемость производительности
    Ответ написан
    Комментировать
  • Вопрос организации архитектуры. Производительность или поддерживаемость?

    longclaps
    @longclaps
    мне каждый раз при обращении клиентво к этому контроллеру, придется создавать этот объект

    Пул соединений - слышали о таком? Если это действительно надо - так делают.
    Ответ написан
    1 комментарий
  • Как точно посчитать количество изменений например true на false и наоборот false на true?

    @kttotto
    пофиг на чем писать
    privare bool _property;
    private int count;
    public bool Property
    {
    	get { return _property; }
    	set 
    	{ 
    		if(_property != value)
    			count++;
    		_property = value;
    	}
    }
    Ответ написан
    2 комментария
  • Какие должны быть первые шаги новичка во фрилансе?

    vicodin
    @vicodin
    Имею некоторый опыт
    1 шаг - получить базу фундаментальных знаний в выбранной сфере (в это же время можно сформировать некое начальное портфолио)
    2 шаг - изучить основы маркетинга для дальнейшего построения общения с клиентами
    3 шаг - изучить рынок на предмет ценовой политики для формирования собственной стратегии роста и постановки первоначальной почасовой ставки
    4 шаг - оформить профили на фриланс биржах основываясь на знаниях полученных выше и примерах профилей успешных фрилансеров(не копировать, а писать своё)
    5 шаг - начинать посылать отклики на проекты, выполнение которых требует не меньше ~70% текущих знаний
    6 - повторять 5 шаг, корректируя стоимость часа, до "устаканивания" в среднем рейте по сфере, регулярно обновляю информацию в профилях на биржах и пополняя портфолио завершёнными проектами - с чёткой детализацией выполненных задач в них.
    7 - не забывать продолжать развиваться в выбранной сфере и нишеваться в узких направлениях если изначально было выбрано слишком широкое

    Альтернатива фрилансу - бодишопы по типу топтал, при этом процесс тот же самый, только клиентов человек будет подбирать не сам, а их будут подбирать для него дядьки, которые будут брать за это ~половину его заработка
    Ответ написан
    7 комментариев
  • EntityFramework и метод SaveChanges(), это медленно?

    Bogdan_dev
    @Bogdan_dev
    Разработчик SPA приложений на ASP.NET WEB API
    Если вы не будете писать каждый раз логи, а накапливать их, то есть вероятность, что перед тем как сохранить пачку логов у вас ляжет приложение и тогда вы уже никаких логов не почитаете.
    А вообще писать через EF логи - это как топить печку бумагой, вместо дров/угля.
    Если хотите структурированные логи очень рекомендую присмотреться к MongoDB.
    Ответ написан
    3 комментария