• Пример архитектуры хорошего Golang веб-приложения?

    @alexkdev
    Сам нахожусь в поисках идеального ответа на ваш вопрос, но кое что есть для размышления по этому поводу:
    1. https://github.com/gothinkster/realworld (тут не только Golang)
    2. https://github.com/golang-standards/project-layout
    Ответ написан
    Комментировать
  • Где найти свой первый заказ?

    zamboga
    @zamboga
    Аналитика данных, BI-аналитика, дашборды
    Ловите из моей копилки (сортировка от балды, комментарии мои, я "заказчик")

    • Биржи фриланса СНГ
    https://work-zilla.com — легко очень быстро найти исполнителя на простую работу за 100-3000₽
    kwork.ru
    https://5bucks.ru
    radideneg.ru
    moguza.ru
    https://fl.ru/ (ад.кг) -- один из самых известных фрилансных ресурсов рунета, полно предложений (август 2018)
    https://freelance.ru/ -- сильный конкурент fl.ru, полно предложений (август 2018)
    https://www.weblancer.net/ -- норм, не очень много предложений, но много "целевых", меньше мусора (август 2018)
    https://freelansim.ru/ -- не очень много предложений (август 2018)
    https://YouDo.com -- мало предложений (август 2018)
    https://freelancehunt.com/ -- много предложений (август 2018)
    § Статистика цен https://freelancehunt.com/statistics/rates/currency/rub
    https://www.freelancejob.ru -- очень мало предложений (август 2018)
    https://yukon.to — для даркента и "сомнительных" заданий. Типа "античата"
    www.free-lance.ru -- старое название fl.ru

    • Биржи фриланса международные
    https://www.upwork.com - конкурировать невозможно, только покупать профиль с 1000+ часов, остальное $5-$15 от рабовладельцев
    www.freelancer.com
    https://www.peopleperhour.com/
    https://www.guru.com/
    fiverr.com — для простого дизайна
    https://envato.com/
    https://talent.hubstaff.com
    https://remoteok.io
    https://weworkremotely.com/
    https://www.cybercoders.com/
    https://djinni.co
    https://www.toptal.com
    https://www.linkedin.com
    https://elance.com — куплен upwork
    https://odesk.com — куплен upwork

    • Агрегаторы фриланс-бирж
    https://primelance.com
    https://www.alot.pro
    https://work-at.me/freelance_projects/list
    https://ifreework.org/projects.html
    https://joby.su/search/ff/
    ayak.ru
    https://spylance.com/spy#notices
    j-scan.ru/search_old
    ejobstracker.com
    https://play.google.com/store/apps/details?id=alot...
    https://play.google.com/store/apps/details?id=free...
    https://play.google.com/store/apps/details?id=com....
    https://itunes.apple.com/us/app/mobile-freelance/i...
    https://play.google.com/store/apps/details?id=com....
    Где искать заказы?
    Ответ написан
    12 комментариев
  • На что обращать внимание при выборе веб-студии или же фрилансера помимо их/его портфолио?

    @jwwwe
    Сейчас на бирже чуть ли не за бесплатно верстают. Я обычно отдаю 3-4 фрилансерам, а потом выбираю наиболее понравившейся макет, но при этом оплачиваю работу всем исполнителям.
    Ответ написан
    2 комментария
  • На что обращать внимание при выборе веб-студии или же фрилансера помимо их/его портфолио?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Проверки:
    1. В момент озвучивания стоимости работы, попросите объяснить стоимость расчёта вёрстки, детализировав сам процесс.
    Сможет - значит делает сам, нет - значит перепродаёт.
    2. Если ответит, что "у меня стоимость часа [такая-то], а сколько это займёт - пока неясно". Сразу отказывайтесь!
    3. Вёрстка - всегда пост-оплата или договор (проверяйте только с юристом)!
    4. Проверяйте HTML-код на валидность сразу же, как только будет готов пустой каркас ("белый лист").
    5. Проверяйте ОБЯЗАТЕЛЬНОЕ! наличие семантической HTML5-разметки (header, nav, article, section, aside, footer, address, main, figure и т.д.).
    6. Проверяйте наличие микро-разметки: гугл, яндекс.
    7. Все анимации блоков - в отдельном НЕ СЖАТОМ! js-файле!
    8. Все формы/калькуляторы/поисковые строки - ТОЛЬКО в HTML: никаких AJAX-ов и валидаций быть не должно до момента установки вёрстки на бэкенд!

    Ссылки:
    1. Про качество и рейт: здесь
    2. Про стоимость вёрстки: здесь
    3. Про мотивацию: здесь
    4. Про проверку вёрстки и настроек сайта на хостинге: здесь
    Ответ написан
    7 комментариев
  • Как лучше сделать модальное окно для другой модели?

    slo_nik
    @slo_nik Куратор тега Yii
    Доброе утро.
    В модальном окне выводите форму.
    В атрибуте формы "action" указываете путь до нужного контроллера.
    В указанном контроллере создаёте действие для обработки ajax запросов.
    Всё.

    p.s.
    через Yii 2 Dialog или через Bootstrap Modal?

    Это без разницы.
    Ответ написан
    Комментировать
  • Что нужно уметь, чтобы я справедливо мог вписать git в резюме?

    bask
    @bask
    Этого достаточно.
    Но придерживаться Git Flow крайне рекомендую.
    Здесь простым языком и по-русски:
    https://proglib.io/p/git-github-gitflow/
    Ответ написан
    1 комментарий
  • Почему наши топ веб-студии не считают Wordpress серьезной CMS, а американские топовые студии делают на нем 50% сайтов?

    Главный аргумент против - это процедурный подход в разработке, ориентированный на хуки, слабая реализация принципа MVC. Даже в богомерзком битриксе с этим лучше. Чем более кастомная у вас разработка, чем более сложные задачи, тем больше приходится писать все самим, а не полагаться на какие-то готовые расширения. Какое-то время они могут "вывезти", но при дальнейшем росте можно столкнуться с невозможностью дальнейшего нормального развития продукта.

    Итого: если клепать однотипные сайтики невысокой сложности и без перспектив особого роста, без особой кастомизации со стороны клиента - да, можно выбрать любимую опенсорс платформу и делать на ней абсолютно всё. Но чем сложнее перед вами ставят задачи, тем важнее иметь в руках не CMS, а удобный для кастомизации разработки и проектирования фреймворк. И в этом плане любое ООП-решение удобнее хуко-процедурной мешанины. Что не исключает, конечно, бездумное поклонение некоторых студий битриксу и впихиванее его во все дыры, где надо и не надо.
    Ответ написан
    15 комментариев
  • Исполнителю не нужно ТЗ. Это нормально?

    avanesov
    @avanesov
    Мы стараемся тоже работать без ТЗ, но мы общаемся с клиентом и спрашиваем, какое решение они хотят получить и для чего. ТЗ написанное клиентом может действительно навредить, потому что во-первых пишут ТЗ не профессионалы, во-вторых - собирают целый консилиум, в итоге получается не внятное ТЗ, а сборник хотелок, которые никак не связаны с реально работающей концепцией.
    Вы ведь когда в ресторан приходите, вы не пишите ТЗ. Вы говорите что хотите и повар вам это готовит, тк он профессионал. Если вы сами профессионал в этом - вы сами и сделаете.
    Ответ написан
  • Исполнителю не нужно ТЗ. Это нормально?

    iamd503
    @iamd503
    Верстальщик
    Т.е. они могут что то не сделать, а потом сказать, ну вы об этом не говорили. И будут правы, а потом конечно доделать это за дополнительную плату. Классика.

    PS: я бы к ним не обратился.
    Ответ написан
    1 комментарий
  • Как работают сервисы перевода денег с карты на карту?

    @m0nym
    1) Сервис заключает договор с тем, кто предоставит платежный шлюз. И вносит предоплату. Например, 1 млн. рублей.
    2) После этого сервис по API имеет право распоряжаться упомянутым миллионом (минус комиссия платежного шлюза). То есть может указывать платежному шлюзу куда нужно положить деньги на какую карту. Пока не закончился предоплаченный миллион.
    3) Чтобы не делать это за свой счет, чтобы получать деньги от пользователей, нужен все тот же договор с тем, кто предоставит шлюз. Но уже шлюз для получения денег. С этим проще - можно подключить себя как обычный интернет-магазин.
    4) Через какое то время, обычно на другой день, реже через 3 дня - деньги полученные тобою в шлюзе, переводятся на банковский счет.

    Шлюзы на прием денег и шлюзы на отправку денег - могут быть разными, у разных фирм взятыми. Более того, ты можешь для части платежей использовать один шлюз, а для части платежей другой, а для части платежей третий.

    Но как минимум один нужен.
    Ответ написан
    Комментировать
  • Подключение платежного шлюза СберБанк. Как реализовать подключение?

    voronkovich
    @voronkovich
    Недавно столкнулся с той же проблемой. Почему-то Сбербанк не делает библиотек для работы со своим API, как все нормальные платежные шлюзы. Да и API у них - совершенно безумное. Документации в открытом доступе нет, какие-то пдфки в письме прислали. В итоге, сделал небольшую библиотеку на PHP https://github.com/voronkovich/sberbank-acquiring-... Надеюсь пригодится кому-нибудь еще.
    Ответ написан
    23 комментария
  • Как преодолеть кризис начинающего специалиста?

    @deliro
    Как преодолеть такой кризис?

    1. Уволиться, пойти поработать кассиром/грузчиком/официантом/таксистом (но надо иметь свой бизнес);
    2. Понять, что даже писать CRUD не так утомительно и скучно;
    3. Радоваться тому, что есть.

    Как на самом деле работают программисты?

    90% времени думают, 10% времени пишут.

    А ещё, говорят, ИТ не сводится к одному ДС. Можно попробовать что-то другое.
    Ответ написан
    Комментировать
  • Как правильно делать deploy с помощью docker registry?

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

    Давайте разберемся с инструментами и их предназначением, которые Вы используете:
    • Комманда docker - это консольный интерфейс (CLI) для работы с Docker
    • docker build создает по заданному Dockerfile образ контейнера
    • docker tag присваивает указанному образу указанный тег (опция -t для build делает то же самое)
    • docker pull скачивает указанный образ из удаленного регистра на текущую машину
    • docker push заливает указанный образ в удаленный регистр
    • docker run запускает новый контейнер из указанного образа
    • docker ps выводит список текущих "бегущих" контейнеров

    Команда docker не жонглирует файлами, она жонглирует образами и контейнерами, а они от нас абстрагированы Docker'ом, как что-то эфемерное. То есть выполняя комманду docker pull Вы не скачиваете образ в ту папку, где выполняете команду, и уж точно не скачиваете какие-либо файлы. Все что Вы делаете этой командой - это скачиваете образ в локальное хранилище Docker'а, дабы Docker daemon мог запустить контейнер на основании этого образа.

    Команда docker-compose - это уже совсем другая команда. Все что она делает - это читает указанный YAML-манифест и выполняет соответствующие команды Docker. Это всего лишь позволяет декларативно указывать желаемые сценарии при работе с Docker в удобном формате. Но ни команда docker, ни docker-compose, не предоставляют ничего для того, чтобы транспортировать/обновлять версии Ваших манифестов где-то там. Docker, опять таки, жонглирует образами и контейнерами, не более.

    У Вас в манифесте указана директива build:. Таким образом docker-compose пытается сначала собрать контейнер, вместо того, чтобы просто запустить его из образа.

    Касательно совета docker-compose.yml под каждый env, все правильно советовали. Именно так это и задумывалось. Вы в манифесте указываете отнюдь не разные окружения (development, production), а набор контейнеров, которые должны бежать в одной связке одной логической единицей (концепция POD'ов). Ничего не запрещает делать и так, как сделали Вы, но это сродни использованию дуршлага в роли миски для еды: сегодня Вы нормально из него наворачиваете пельмени, а завтра супчик в нем уже куда-то не туда утекает.

    Воркфлоу в Вашем случае можно организовать следующим образом:
    1. На dev-машине у Вас один docker-compose.yml, согласно которому контейнер перед запуском собирается из сорцов.
    2. Когда у Вас готова новая версия приложения, Вы его собираете через docker build, присваиваете ему номер версии через docker tag и отправляете в удаленный регистр образов через docker push.
    3. На prod-машине у Вас отдельный docker-compose.ymlв котором указано запускать конкретную версию образа (и никаких build). Новая версия приложения - меняем тег образа в манифесте и перезапускаем контейнеры. При выполнении docker-compose образ автоматически скачается перед запуском, если его нет локально. Если же Вы обновили образ конкретной версии, которая уже была скачана ранее, то да, нужно выполнить docker pull перед стартом, дабы скачать новый образ.


    Дополнительный совет:
    Сборку образа и его заливку в удаленный регистр часто удобно автоматизировать с помощь Makefile'ов.
    Ответ написан
    3 комментария
  • Как правильно хранить ip в бд?

    Melkij
    @Melkij
    PostgreSQL DBA
    2015 год, почему ответы ipv4-only?

    inet_ntop / inet_pton, хранение в binary(16).
    Ответ написан
    Комментировать
  • Как поставить ownCloud за Nginx в Docker?

    @askhat Автор вопроса
    Проблема в том, что proxy_pass http://127.0.0.1:6789; смотрит на собственный контейнер, а не на сервис owncloud. К счастью docker-compose добавляет адреса сервисов в /etc/hosts, в чём можно убедиться выполнив команду docker exec nginx cat /etc/hosts, там будет строчка 172.17.0.2 owncloud 8a567934bb13.

    Значит если изменить docker-compose.yml, заменив ports: - 6789:80 на expose: - 80, и nginx.conf, заменив значение proxy_pass на http://owncloud; — всё заработает.
    Ответ написан
    3 комментария
  • Стоит ли новичку начинать с фреймворка или лучше учиться на чистом php?

    Ginkidayo
    @Ginkidayo
    обычный человек
    Думаю, что выбор хорошего фреймворка как Symfony или Laravel будет намного полезнее голого программирования на php. Если начнете с фреймворков, то уже будете писать более нормальный код, нежели на голом php.
    Ответ написан
    Комментировать
  • Где захостить статический сайт с моим доменом, желат. бесплатно?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    github pages
    Ответ написан
    Комментировать
  • Для чего идеальна MongoDb? Примеры приложений, где монга будет лучше mysql?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Я расскажу Вам про личный опыт, без претензий на истину в последней инстанции...

    Для чего идеальна MongoDb? Примеры приложений, где монга будет лучше mysql?
    Для человека который привык работать с реляционными БД, смириться с логикой и вообще с подобными БД - довольно сложно. Для тех, кто работает с реляционными БД профессионально - сделать это ещё сложнее...

    Если сравнивать с реляционными БД и с оглядкой на конкретно MySQL - монга идеально вписывается там, где структура данных заранее неизвестна. Тут я хотел привести пример, но не смог придумать ни одного дельного примера, после того как начал плотно работать с PostgreSQL... Давайте попробую из практики. Мы один раз применяли монгу в проекте где есть десятки и сотни тысяч товарных позиций и у каждой из них свой уникальный набор различных свойств. На основе уже имеющихся свойств, "соседних" товаров, контентщику предлагался наиболее вероятный набор параметров, которые нужно заполнить, но в любой момент он мог удалить или добавить любое поле и/или множество значений одного из них, например, "Цвет: черный, серый, фиолетовый". Всё это дело попадало под разные динамические фильтры и далее по цепочке... В то время, насколько я помню ещё не было поддержки JSONB-формата у PostgreSQL, по этому мы остановились на MongoDB. Ну и конечно же, желание "воткнуть ультра новую и модную БД в проект" сыграло свою роль...

    Что в монге определённо не нравится (и это не моя "идея", об этом пишут даже в учебниках под монге) - это тотальная денормализация данных. Которая в некоторых случаях может сыграть злую шутку. Например, все комментарии "поста" обычно хранятся прямо в самой сущности поста. Это очень удобно и довольно быстро работает, но... иногда это приводит к полному коллапсу. Особенно, когда у Вас перекрестная ссылочность.

    Безусловно, не редко можно встретить проекты в которых даже в реляционных БД не прописаны, например, внешние ключи и контроля целостности данных как такового нет, но обычно это происходит по следующим причинам:
    1. Очень низкая квалификация администратора БД проекта
    2. В попытке выжать из базы больше производительности, не найдя других методов оптимизации
    3. Данных настолько много, что БД/ключи - начинают "сыпаться", не редко это связано с п.1

    Так же, последние тесты показывают, что PostgreSQL почти не уступает MongoDB даже в её родной среде (на уровне данных в формате JSON). А в некоторых аспектах даже превосходит её... Подробности Вы можете увидеть на некоторых конференциях по Postgres (да, на конференциях по MongoDB, Вы вряд ли увидите, как кто-то будет рассказывать, что [их любимая] монга "хуже" некоторых других движков...). Кстати, поддержку формата JSON стандартизировали (наконец-то) на уровне SQL-стандарта (если я не ошибаюсь) и в самом ближайшем будущем, думаю стоит ожидать полноценную поддержку оного в SQL-базах, в т.ч. поддержку в бинарном виде с возможностью индексации данных (кстати, некоторые SQL-базы уже такое умеют).

    Моё понимание, ответа на вопрос, "когда действительно стоит использовать MogoDB?" звучит примерно так: Исключительно в тех случаях, когда Вы понимаете, что она станет действительно хорошим решением для поставленной задачи и сейчас и в будущем. В моей практике, таких проектов можно было бы насчитать ничтожно мало, а точнее около нуля, особенно с учётом развития некоторых современных SQL-БД и вообще направления "JSON в SQL" в целом. Но, безусловно такие проекты могут быть и есть (в данном случае, не у меня). Но, тут стоит обратить внимание на крайне важный факт - когда всплывает такой проект, что бы адекватно оценить наиболее оптимальную БД под него - нужно знать как минимум пару-тройку SQL-БД, со всеми их особенностями, достоинствами и недостатками... причем не просто "знать", а хорошо знать, "изнутри". А так же знать все характерные черты монги, а так же её особенности, достоинства и т.д. То есть, если Вы задаётесь вопросом, "а хорошо ли впишется монга в проект N?" и не можете найти на него однозначного ответа, вероятнее всего, что в долгосрочной перспективе, в "проект N" она впишется плохо.

    P.S. В заключение, хочу ещё раз напомнить, что "JSON в SQL" - активно развивается... Со всеми вытекающими.
    Ответ написан
    7 комментариев