Задать вопрос
  • У меня ощущение что я самозванец. Что посоветуете?

    jaxtr
    @jaxtr
    JavaEE/Spring-разработчик
    Получается, что я связующее звено между всеми отделами (Производство, Бухгалтерия, Логистика) - придумываю решение а индус все это дело кодит.


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

    longclaps
    @longclaps
    Сеньер фриласер знает, что на работу можно не ходить, а офисный сеньёр - что дома работать необязательно.
    Ответ написан
    Комментировать
  • Появится ли такой тип программиста?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Code Review

    По-русски это называется процессом рассмотрения кода, или просто проверкой кода командой. Появляется после того, как команда проходит через стадию говнокодерства редактированием файлов на сервере через FTP и начинает использовать современные средства управления версионированием кода, в которых можно делать Pull request (запросы на добавление вашего кода в общую базу, GitHub, GitLab).

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

    Кроме code review, есть такая вещь, как стандарты. Она заключается в том, что существует некий общепринятый документ, который декларирует, как писать код, сколько делать отступов, табы или пробелы и т.д. Нередко он декларирует интерфейсы и тому подобное. В мире PHP это набор стандартов PSR. И все без исключений следуют этому стандарту.

    Кроме этого существует ряд вспомогательных инструментов, таких как анализаторы кода, которые проверяют код на наличие потенциальных ошибок и прочие моменты. В мире PHP это Mess Detector и CodeSniffer.

    В заключении отвечу, что такой должности нет и врядли она когда-нибудь появится.

    Слежение за качеством кода это обязанность каждого разработчика.

    Осознание этого приходит с повышением квалификации разработчика.
    Ответ написан
    1 комментарий
  • Витамин в12 или b12?

    BuriK666
    @BuriK666
    Компьютерный псих
    Правильно: Витамин B12
    А еще будут писать "ветамин", "витомин" и т.п.
    Ответ написан
    1 комментарий
  • Как правильно работать с REST API?

    Ну вообще днище какое-то.
    Для добавления таких привязанных к объекту сущностей обычно делают PATCH/PUT запрос с урлом типа /:resource_name/:resource_id/:entity_name.
    В вашем случае что-то типа PUT /clients/:id/stocks
    Ответ написан
    6 комментариев
  • Как залить много фотографий в интернет магазин?

    Закажи у когото написать тебе такой скрипт или софт на Фрилансим или на UpWork, специфическая вроде задача такая, объясни на бирже суть, что куда надо, откуда, более детально, думаю это выполнимо
    Ответ написан
    Комментировать
  • Какие сборщики проектов сейчас в ходу?

    vitali1995
    @vitali1995
    Если речь ведётся о сборке js-проектов, то лучшим ответом будет webpack.
    Если нужна автоматизация произвольного типа задач, тогда лучшим решением будет gulp.
    Впрочем, эти два инструмента отлично дружат друг с другом, когда каждый из них занимается своим делом.
    Ответ написан
    4 комментария
  • Какой язык востребованнее для фриланса?

    mrusklon
    @mrusklon
    Не получается? Яростно гугли!
    было буквально вчера.,
    английский :)
    Ответ написан
    Комментировать
  • Как правильно сделать облако тегов с MongoDB?

    Ptolemy_master
    @Ptolemy_master
    Я бы сделала так.
    Страница со списком документов загружается как обычно, попутно подгружается список тэгов, который хранится как обычный массив строк, привязанный к профилю пользователя, сформированный как описано в вашем варианте номер 1. (Делать отдельную коллекцию для простых списков смысла не вижу, всегда лучше начинать с минимизации сущностей - бритва Оккама, ага :)
    Когда мы загружаем страницу со списком, идет подгрузка тэгов. Все последующие обращения к другим страницам делаются асинхронно, следовательно, облако тэгов больше загружать не надо.
    Я не знаю, что вы используете на клиенте, я работаю плотно с Angular, поэтому говорить могу только про него.
    Технически это было бы сделано так - маршрут для списка документов прописан на сервере, идет возврат клиенту профиля со списком тэгов. А маршруты ангуляра содержат обращения к страницам. В случае первичной загрузки идет запрос на страницу номер 1 (как resolver для этого маршрута), последующие вызовы - просто асинхронно к выборке соответствующей страницы.

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

    sim3x
    @sim3x
    Пром товар, чаще всего означает, что продажи штучные

    Делаем читабельный лендинг, где хорошо описываем товар
    Лендинг показываем своим возможным клиентам (целевой аудитории)
    Собираем фидбек
    Перерисовываем
    Желательно в итоге получить вау-еффект, но и просто информативной страницы хватит

    Внизу контакты, телефоны, емаил и форма обратной связи

    Дизайн / отрисовка - $100-400
    Верстка - $100-200
    Бекенд для формы обратной связи - $20

    PS: лицензию на битрикс можете подарить своим недоброжелателям
    Ответ написан
    2 комментария
  • Как продолжить скачивание после падения?

    @MadridianFox
    Web-программист, многостаночник
    Сделать такую докачку можно на любом языке, т.к. всё что нужно - это добавлять в запрос заголовки и определять размер файла в байтах.

    Докачка файла - это свойство протокола http. Если http-сервер поддерживает докачку, то он отдаёт заголовок Accept-ranges. Скачивая файл вы можете прервать загрузку, а когда решите докачать - отправить запрос на скачивание этого же файла, но уже с заголовокм Range: bytes=<count_loaded_bytes>-, тогда сервер начнёт отдавать файл с указанного места. Погуглите подробнее про эти заголовки.

    Это касается уже готовых http-серверов, которые полностью соответствуют стандарту. В вашем случае, наверное, необходимо отдающий сервер научить отдавать файл по стандарту. Т.е. если поступил запрос на скачивание файла, надо учитывать, что в заголовке может быть передано смещение, ну и отдавать файл начиная с этого смещения.
    Ответ написан
    Комментировать
  • Как вызвать метод из другого компонента во vue.js?

    kulakoff
    @kulakoff Куратор тега Vue.js
    Vue.js developing
    В шаблоне присвоить ref компоненту, метод которого хотите вызвать, далее в коде:
    this.$refs.myComponent.myMethod()

    Если стоит задача просто вызывать какие-то общие функции, то для этого есть плагины, миксины, директивы - использовать то, что лучше/удобнее в конкретном случае.
    Ответ написан
    Комментировать
  • Организация pug?

    alvvi
    @alvvi
    export default apathy;
    Не претендую на правильность, но для себя удобным счел такой вариант:
    клик
    625af68590094936abeee9ee8e96c937.png

    Каждый компонент - pug-миксин. Миксины могут быть вложенными, например:
    клик
    73a93bf7e39d424f9fa5562a97595cfc.png

    + делаем layout.pug, от которого @extend-им все страницы, инклюдим нужные компоненты и в конце вызываем миксины
    вот так
    b84983c87f8045c283797190552cf5eb.png

    В целом получаются вполне себе реюзабельные блоки вместе с разметкой, логикой стилями и контентом. Такое очень легко натягивать на Express или просто перекидывать с проекта в проект.
    Ответ написан
    4 комментария
  • Куда двигаться дальше senior разработчику? Новый язык, технологии, opensource, стартап?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Как вы это делаете?! За 17 лет работы в ИТ у меня ни разу не возникало вопроса "Куда двигаться?", только "Где взять времени на освоение всего этого бесконечного изобилия технологий, углублённого изучения уже знакомого и реализацию множества идей?"
    Ответ написан
    4 комментария
  • Retina споры с дизайнером? "DPI влияет на размер текста"?

    @GreatRash
    16px везде будут равны 16px.
    Если дизайнер упоролся, то сделайте ему тестовую страницу и пусть отстанет от вас уже.
    Ответ написан
    5 комментариев
  • Как реализовать такую структуру?

    gibson_dev
    @gibson_dev
    Ну дак обычнм селектом и сделать

    1. Добавить бордер.
    2. Отключить стрелочку
      -webkit-appearance: none;
         -moz-appearance:    none;
         appearance:         none;



    3. Добавить background c вашей стрелкой
    4. Остальное по вкусу
    Ответ написан
    7 комментариев
  • Для чего используются геттеры и сеттеры в реальных примерах?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Суть геттеров/сеттеров - в создани буфера, который защитит объекты от грубого вмешательства во внутреннюю структуру. Вы как бы создаете свой API для пользования объектом и гарантируете, что если пользоваться им - все пройдет хорошо. Вы заранее планируете свойства переменных и защищаете их от излишнего вмешательства.

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

    Какие проблемы можно предотвратить?
    - запись в переменную другого типа данных
    - перезапись константы
    - затирание/перезапись метода
    - чтение не обработанных данных напрямую
    - чтения данных без разрешения
    - и т.д.
    Ответ написан
    Комментировать
  • Как реализовать субдомен на express Node JS?

    bingo347
    @bingo347 Куратор тега Node.js
    Crazy on performance...
    Вариант 1, разные app для каждого домена:
    'use strict';
    const http = require('http');
    const express = require('express');
    
    const appWWW = express();
    const appSub = express();
    
    http.createServer((req, res) => {
      switch(req.headers.host) {
      case 'example.com':
      case 'www.example.com':
        appWWW(req, res);
        break;
      case 'sub.example.com':
        appSub(req, res);
        break;
      }
    }).listen(8080);

    Вариант 2, один app, переписываем url с помощью middleware:
    'use strict';
    const express = require('express');
    
    const app = express();
    
    const WWW_RE = /^www\./i;
    app.use((req, res, next) => {
      const host = req.headers.host.replace(WWW_RE, '');
      req.url = '/' + host + req.url;
      next();
    });
    
    app.listen(8080);
    Ответ написан
    4 комментария
  • Как организовать доступ к ресурсам в REST API?

    gobananas
    @gobananas
    finishhim.ru
    Перемудрили. Всё должно быть очень просто. Что такое тип медиа? Музыка или видео? Так по
    /movies/genre/{id}/film/{id} - фильмы
    /music/albums/{id}/tracks/{id} - музыка

    Далее. Если я знаю id трека или фильма мне надо дать возможность обратиться непосредственно к нему:
    music/track/{id} - всё

    Если я не знаю какой трек мне нужен я прошу все треки из направления музыкального, например rap у него id=13
    music/style/13

    По этому запросу выдаются пачки направления по 100, 300 или 1000 штук в зависимости от ресурсов и можно указать пагинатор
    music/style/13/2 - вторую страницу направлений мне покажите

    Именно поэтому параметры лучше передавать в явном виде в url типа style=13&page=2 потому что так не запутаешься что такое 13 и что такое 2.

    Если я совсем ничего не знаю и жанры тоже должен быть вспомогательный метод для получения всех жарнов, как у ВК для получения городов например. Запрос вида:
    music/allganre?page=0

    отдаёт 100 пар вида "название жарнра -> id" так сделав 5 запросов с page=0/1/2/3/4 я в своём приложении смогу иметь всю базу возможных жанров. Можно сделать метод что бы получить жанр конкретной песни:
    music/getganre?track=1456

    И т.п.
    music/getalbums/1456 - получить все альбомы исполнителя
    music/detailalbum/1456 - получить все данные об альбоме (год выпуска и т.п.)
    music/tracksalbum/1456 - получить список треков конкретного альбома

    В общем идите не от частного к общему а наоборот, представьте с чего начать работу человеку который ничего не знает. Максимальную атомарность запросов введите что бы они были между собой никак не связаны. И человек сначала получит жарны, по жанру список исполнителей, по нему список альбомов, по нему список песен, по нему данные о нужной песне. И это всё отдельные запросы.
    Ответ написан
    Комментировать
  • Можете посоветовать какую-нибудь лёгкую минималистичную javascript-галерею?

    dom1n1k
    @dom1n1k
    Ну из ванильных галерей сейчас, пожалуй, самая известная Lory
    meandmax.github.io/lory
    А уж подойдет или нет - не знаю, смотрите сами.
    Ответ написан
    1 комментарий