• Есть ли простая CMS где есть только шаблонизатор, свободные поля и настраиваемая админка?

    Sanes
    @Sanes
    PHP фреймворк это называется. Есть всякие генераторы CRUD для них.
    Modx нечто среднее между CMS и PHP фреймворком.
    Ответ написан
    Комментировать
  • Какие преимущества использования классов вместо функции?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Ну, в данном случае, есть возможность создавать экземпляры класса с заранее заданным query. Тоже самое конечно можно сделать и через замыкание. Для такого функционала нет необходимости создавать класс, гораздо проще использовать функцию, а query передавать во время вызова функции.
    Но когда в вашем классе появится дополнительный функционал, например пагинация, то тут уже будет проще использовать класс, т.к. он проще расширяем. Но если реализовывать пагинацию внутри класса Search, то это уже нарушает принцип единственной ответственности, и я бы вынес функционал пагинации в отдельный класс.
    Но если как раз рассматривать саму пагинацию, то там удобнее использовать классы, вот примерно такую структуру я бы создал
    (пример на TypeScript)
    class Pagination {
        private currentPage: number;
        private countPages: number;
        public goToPage(page: number): void;
        public goToNext(): void;
        public goToPrev(): void;
        // ну, можно всякие геттеры для приватных полей.
    }

    Можно конечно легко обойтись и функциями, храня поля в замыкании, но тут чисто на любителя, кому-то больше нравится ООП подход, кому-то больше функциональный.
    Ответ написан
    2 комментария
  • Запретить перевод определённого текста?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Так: <span translate="no">Москва</span>
    Или так: <span class="notranslate">Москва</span>
    Есть документация, которую вы, по идее, должны были прочитать до написания вопроса.
    Ответ написан
    9 комментариев
  • Как упростить данный код?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Object.values(names.reduce((acc, n) => {
      const g = /^\d/.test(n[0]) ? n[0] : /^[А-Я]/i.test(n[0]) ? 'А-Я' : null;
      g && (acc[g] = acc[g] || [ g ]).push(n);
      return acc;
    }, {}))
    Ответ написан
    2 комментария
  • Какие направления деятельности есть в С++?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Так зайдите на hh.ru и посмотрите какие направления актуальны. Просто вбивайте в поиск C++ (ну или Qt, если хотите конкретно про Qt узнать) по Мск/Спб. Это ответит на большую часть ваших вопросов.

    Для встраиваемых систем (и automotive HMI) Qt очень популярное решение. А скоро будет ещё популярнее :)

    Возраст вообще не важен. Образование не важно, т.к. ничего не гарантирует. Хорошо, когда есть математический бэкграунд, но и когда его нет, то вполне себе жить можно. Действительно наукоёмких задач и вправду не так много.
    Ответ написан
    Комментировать
  • Почему не могу найти работу Junior'ом C#?

    @kttotto
    пофиг на чем писать
    Это не резюме, это набор слов, ничем Вас не выделяет из общей массы и даже делает низовым в списке общей массы.

    1. Такой кучи тегов даже у меня нет)) Если Вы знаете названия технологий, не говорит о том, что Вы знаете сами технологии. С Вашим опытом никто не поверит, что Вы имели реальный опыт со всем этим, а не просто hello world написали. Выберите те, в которых по Вашему мнению Вы лучше всего разбираетесь.

    2.
    Отличное знание WinForms, ASP.NET, LINQ и WPF. Паттерны: MVVM, MVP, Repository, IoC.

    Для третьекурсника звучит самонадеяно. При такой формулировке на техническом собеседовании будут проверять "отличное" знание и я почти уверен, что Вы его провалите. Лучше сказать что-то подобие: имел опыт работы с, для реализации использовал технологии, имею <начальные> навыки работы с и т.д.

    3.
    Занимался исправлением мелких багов, написанием небольших SQL-запросов и unit-тестов, решал небольшие задачи.

    Этим занимаются все разработчики, даже мидлы с сеньорами. Из Вашей фразы не понятно, какого уровня проект, какой стек, какие конкретно задачи Вы решали, как успешно Вы их решали. Работодателю нужно понимать Ваш реальный опыт и Ваши реальные возможности, а не нечто эфемерное "решал небольшие задачи".

    4.
    Если вспомнить css и html

    Вот такое никогда не пишите. Лучше соврать или преувеличить, или даже написать "Отличное знание", но не так как Вы здесь сформулировали.

    5. Не нужно оставлять ссылки на каждый проект в репозитории. Либо один, самый интересный на Ваш взгялд, либо одна ссылка на сам репозиторий. Работодатель пойдет туда только, если Вы заинтересуете его, не раньше. И ему пары файлов хватит оценить ваш уровень. Он не будет делать ревью всех Ваших проектов.

    6. Опыта одного проекта мало. Где опенсерс проекты, где участия в хакатонах, где амбиции стартапов, посещение конференций? Работодатель хочет понимать как Вы заинтересованы развиваться, какие у Вас планы для дальнейшего роста. Он берет вас нулевым не из альтруистических побуждений, а с надеждой, что Вы быстро вырастите и вернете ему прибылью затраченное на Вас время. Из Вашего резюме видно только одно: я студент - дайте работу. А почему Вам, за какие такие заслуги и что с этого будет иметь работодатель - не понятно.

    7. Я посмотрел Ваш код. Я бы не хотел, чтобы так писали у меня в проекте, начиная от именований и заканчивая некоторой логикой. Вас надо очень осторожно подпускать к реальным задачам и контролить, что Вы там напишете, просто чувствуется маленький опыт и до "отличных знаний" там далеко.

    В общем, вывод. Пока у Вас за плечами нет списка реальных проектов, чтобы Вас пригласили, надо себя выпячивать, хвастаться достижениями, демонстрировать амбиции, свою уникальность. Нужно убеждать работодателя, что Вы именно тот, кто ему нужен. В резюме этого нет. Когда у Вас будет пяток законченных проектов, будет наоборот, работодатель будет за Вами бегать и убеждать, что Вам у него будет лучше всего. И на hh студентов практикантов не ищут, поэтому только Вы должны делать отклики на вакансии, обязательно с сопроводительным письмом, в котором парой фраз Вы сможете заинтересовать работодателя.
    Ответ написан
    Комментировать
  • Какой посоветуете стартер-кит для верстки?

    RedEagle69
    @RedEagle69
    Html-верстальщик, Front-end разработчик
    Webpack + Gulp, шаблонизатор Twig и препроцессор Sass(с Scss синтаксисом). И поддержка многих новых возможностей с помощью PostCss.
    Заточен под вёрстку, полный фарш с минифаерами, сборкой спрайтов, оптимизацией картинок, шрифты, js, и куча полезных миксинов для стилей.

    Всё настраиваемо и интуитивно понятно, плюс подробный readme. Посмотреть можно
    вот здесь.
    Ответ написан
  • Зачем/Для чего нужен данный код?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Это геттеры и сеттеры. То есть функции доступа к свойству.

    Зачем? Попробую объяснить простым языком. Большие программы сложно полностью загрузить в мозг отдельного человека и представлять всю структуру целиком со всеми нюансами одновременно. Поэтому принято делить программу на части. Вынос кода в отдельную функцию - один из простых способов. В ООП к этой проблеме подходят более основательно. Класс как явление - тому пример.

    Класс делит программу как минимум на 2 части - то, что внутри класса, и то, что снаружи класса. Считается как бы, что класс пишет один человек, а пользуется им другой человек. Но это может быть и один единственный человек, всё равно так проще, потому что человек сначала пишет класс, тщательно всё там кодит и тестирует, а потом напрочь ЗАБЫВАЕТ, как он устроен внутри, потому что он уже готов и им можно пользоваться. То есть человек выгружает из своей ненадежной человеческой памяти эту инфу и переходит к следующей задаче, в которой просто использует этот класс. Всё, что ему нужно помнить, это то, как пользоваться классом, а всю подноготную можно забыть до тех пор, пока не понадобится улучшить класс. И здесь снова получается удобно. Когда будем улучшать класс (это не обязательно тот же самый человек), можно не думать о том, как его используют. Главное, чтобы способ взаимодействия с классом не изменился (не сильно изменился).

    В вашем примере - это просто заготовка. Дальше нужно наполнять эту заготовку функционалом. В самом простом виде геттер просто возвращает приватное свойство, а сеттер меняет его. Так нужно сделать сразу, чтобы потом не пришлось переписывать всю программу (и согласовывать с коллегами). Но даже здесь уже есть небольшое правило - нельзя передавать отрицательные значения. Условия могут быть сложнее. И вообще всё может быть сложнее. Например, вместо age можно хранить дату рождения. И функция GetAge будет каждый раз высчитывать разницу с текущей датой. По сути для внешнего использования ничего не меняется, но внутри происходит магия.
    Ответ написан
    3 комментария
  • Как добавлять оценку в комментарий?

    amorphis
    @amorphis
    Технолог в Студии Артемия Лебедева
    Сделайте поле с оценкой в виде radio-кнопок и просто стилизуйте его под звёздочки.
    Хороший видео-гайд, как это сделать. Вдруг, пригодится.
    Ответ написан
    Комментировать
  • Уроки вёрстки с нуля?

    fr0st2o11
    @fr0st2o11
    Web&Ui/Ux designer, front-end developer
    Здравствуйте, рекомендую обратить внимание на данный ресурс.

    Достаточно классные курсы есть здесь + дают сертификаты о прохождении курсов.

    Но - лучшее обучение всегда в бою, потому попробуйте воспользоваться рубрикой "Сделаю за отзыв" на Фрилансим.
    Ответ написан
    4 комментария
  • Как можно скрыть ошибку в консоли?

    kshshe
    @kshshe
    Frontend developer
    Просто поменяйте код ответа на любой из диапазона 200-299. Код 400+ означает, что клиент сделал что-то неправильно, поэтому он увидит ошибку. Иногда без консоли не увидит, иногда увидит в каком-нибудь плагине число ошибок и станет хуже относиться к вашему сервису.
    Ошибки 400+ нужно отдавать тогда, когда кто-то делает неправильный запрос. То есть тогда, когда клиент (человек или js-приложение) может знать, что так делать нельзя. А если это проверка на авторизацию, то это нормальный запрос, в котором нет ошибки.
    Когда запрос корректный, клиент не ошибся, нужно отдавать код 200-299.
    Ответ написан
    Комментировать
  • Зачем нужен Yii и другие подобные фремворки?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    CMS - обычно решают конкретные узко специализированные задачи. Тот же WP - это блог и для такого кейса он вполне ок. Если вам нужен не совсем блог, на том же WP разработка вероятно будет сопровождаться анальной болью)). Это просто не целевое применение. То, что на WP и эл. магазины пишут - это просто демонстрация, что вилкой можно в ухе ковыряться))

    Фреймворки обычно имеют более обобщенное целевое предназначение, по этой причине на них обычно легче сделать сайт-визитку, который эл. магазин, немного соц. сеть и частично CRM.

    Пример где стоит использовать CMS: нужен эл. магазин, маленький бюджет и сроки тоже. Берем PrestaShop, устанавливаем, прикручиваем тему, настраиваем. Следующий!

    Пример где стоит использовать фреймворк: вам нужен сайт на подобии того, на котором вы читаете мой ответ. Да, его можно за уши притянуть к понятию "блог", но переписывать и допиливать нужно многовато. Пойдем от обратного (вы таки выбрали WP)
    * Потом поймете, что нужно было еще абстрактный уровень над WP написать, потому как после обновления ваши правки затерлись.
    * Потом вдруг случается несчастье: ваш сайт стал популярным и железо не тянет, вы задумаетесь об масштабировании, но окажется, что система довольно таки целостная и что бы ее разделить придется не хило так по вкалывать.
    * Через какое-то время ваш проект будет на 50% состоять переписанного кода и костылей, обходящих логику WP.
    * Вдруг, на хабре вы читаете статью про уязвимость в вашей версии WP, начинаете ее прикручивать, при этом часть вашего сайта тупо отваливается из-за тех же артефактов и костылей. Вы, ясное дело, фиксите траблюки.
    * В один прекрасный весенний денек, когда птички поют, радость, счастье, улыбки и бла-бла-бла вам звонит руководство и говорит, что "ничего не работает ( с )", отчаянье-печаль-грусть-уныние-безысходность-тлен. Зайдя на главную вы увидите замечательный баннер:
    Вас взломал @ сраный_script_kid. Один глаз начнет немного дергаться, "это нормально ( с )". Восстановившись из бэкапа 4-х недельной давности, вы начинаете судорожно писать 1ккк проверок всего и вся. Система мутирует в еще более страшную и громоздкую хрень.
    * Через какое-то время вас просят добавить фичу "на вчера", а что бы это сделать придется переписать добрую часть вашего монстра, вы (ну судя по количеству факапов) уже с прокачанным скилом "тебе фича не нужна эта" убеждаете руководство в этом, подобные разговоры возникают все чаще и в один прекрасный момент вы, или вас - увольняют.
    * На смену вам компания набирает других человек, которые выльют пару ведер крови из глаз, убедят руководство, что код не саппортабельный и перепишут вашего монстра с 1,5кк строк до 0,3кк на нормальном фреймворке.
    Ответ написан
    1 комментарий
  • Как убрать всплывающие теги в Visual Studio Code?

    tsepen
    @tsepen
    Frontend developer
    Вообще то лучше сразу привыкать писать код быстро и эффективно. Для этого использовать все плюшки от современных редакторов, в том числе автодополнение кода и т.д.
    А теги сами запомнятся, не надо их специально заучивать.
    Ну если что настройки можно посмотреть тут
    Ответ написан
    Комментировать
  • Реферальные ссылки в своём блоге - это зло?

    KorniloFF
    @KorniloFF
    Работаю по font-end / JS
    Думаю, тут от количества зависит. Если страница заспамлена ссылками - одно отношение, а если ссылка одна, указана как реферальная, да расписаны достоинства становления рефералом - отношение будет положительное.

    Например:
    Стань рефералом, зарегистрируйся по этой ссылке - и получишь дополнительные 2ГБ дискового пространства.
    Ответ написан
    Комментировать
  • Как делать подобные "трюки"?

    profesor08
    @profesor08 Куратор тега CSS
    Расположи одну картинку поверх другой, и какую-то полоску по середине, которую будешь дергать туда-сюда. Ширину второй картинки задай 50%. Убедись чтоб изображение было выровнено по левому краю и заполняло всю высоту, а в ширину auto. Далее прилепи простейший drag'n'drop и для полоски, и задавай ширину картинки в зависимости от положения полоски. Кода требует мало, сложностей особых нет, и чему нибудь научишься.
    Ответ написан
    Комментировать
  • Хороший курс-наставник по продвинутой верстке?

    Единственный стоящий русскоязычный канал на youtube по верстке, из которых мне попадались, это FrontCoder https://www.youtube.com/channel/UCzhKcnzGNhPEZsNSK... . На канале верстка реальных проектов с использованием современных инструментов и методологий. Всякие Лаврики и прочая поповщина - инфобизнес чистой воды и профанация. HTML Академия - основы дают по верстке.
    Знание спецификации w3c и справочная информация mdn тоже базис, без которого не стоит начинать.
    Ответ написан
    3 комментария
  • Документы с разметкой в VS Code?

    Vlad_IT
    @Vlad_IT Куратор тега HTML
    Front-end разработчик
    Мне нравится markdown, даже есть расширение https://code.visualstudio.com/docs/languages/markdown
    т.е. текст вы пишите обычным текстом, без редактора, а различные стили, заголовки, код, можно описывать на языке разметки markdown (как с html только проще). А рядом с редактором будет открыто окошко предпросмотра, в котором будут применены все стили вашего текста.
    пример
    preview-scroll-sync.gif
    Ответ написан
    Комментировать
  • Какая разница между вызовами этих анонимных функций?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Для читаемости давайте вторую функцию - она одинаковая - тоже в переменную:
    let f2 = function () {
      f(1);
    }

    Тогда код выглядит так:
    // №1
    ( f2() );
    
    // №2
    ( f2 )();


    В первом случае можно убрать внешние скобки, они ничего не добавляют в данном случае.
    Во втором можно убрать скобки вокруг f2 - они тоже ничего не меняют.
    Итого, разницы нет )
    Ответ написан
    Комментировать
  • Как сверстать такой border?

    Whiled0S
    @Whiled0S
    Lazy frontend
    Без fieldset:
    Ответ написан
    Комментировать