Задать вопрос
  • Как называются разработчики, которые пишут не качественный код, но делают продукты?

    anton_reut
    @anton_reut
    Начинающий веб-разработчик
    Быть можно дельным человеком
    И думать о красе ногтей:
    К чему бесплодно спорить с веком?
    Обычай деспот меж людей.

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

    @deliro
    Ты веcь такой кругом молодец, то знаешь, это знаешь. А теперь представь себе среднестатистический проект, который должен приносить бизнесу деньги. За две недели работы ты едва напишешь хлипкий CRUD для данных, неправильно смаппив бизнес-сущности в объекты ORM, ещё через месяц натянешь какой-то слайдер на jQ, попутно захватив 2мб JS кривых библиотек, а через два заказчик поставит тебе плохую оценку, потому что твой ценник он оплатил не за то, что ему нужно, а потому что ты знаешь монады, которые ему даром не сдались.

    А теперь давай представим простого программиста. Из алгоритмов он с трудом вспоминает сортировку пузырьком, а двусвязный список — предел его знаний о структурах данных, и даже этим списком он пользовался два раза в жизни. Хаскель он никогда не видел в глаза, C++ учил только в школе, вместо этого пишет неэффективный код на PHP. И у него есть опыт. За день он распишет сущности, за второй сделает универсальный CRUD, на третий день поднимет фронт на React'е с SSR. Да, внутренности проекта будут "медленными". Вместо O(logN) что-то будет выполняться за O(N) или даже O(N^2), но всем похер. Пока всё работает на приемлемом уровне — бизнес радуется.

    Кстати, к чему эта поучительная лапша? Я хотел сказать, что всеми этими модными словами можно пугать друзей и преподавателей, но в реальной жизни все алгоритмы уже реализованы, все типы данных уже подобраны оптимально. Знать их полезно для себя (чтобы мозг не атрофировался), но не для работы. Для работы тебе нужны такие навыки как:

    * Оптимальный баланс между говнокодом и идеальным кодом
    * Оптимальный баланс между скоростью разработки и оптимизацией кода
    * Оптимальный баланс между поддерживаемым кодом и костылями
    * Умение использовать те инструменты, с которыми ты работаешь. Опять же, для того, чтобы писать быстро, при этом имея минимальное количество говнокода и обеспечивая максимальную поддерживаемость (в пределах сроков). Например, можешь выкинуть в помойку свой Vim, как бы круто ты себя не чувствовал, разрабатывая в консольном редакторе, если продукты от JetBrains позволят за это же время сделать что-то лучше или чего-то больше
    * Чувство "знаю больше менеджеров". Это то чувство, когда тебе кажется, что "вот эта фича скоро изменится" и надо сделать архитектуру заранее более гибкой. Или "вот эту фичу мы через месяц выпилим" и не надо тратить на неё силы — напиши костыль и через месяц с чистой совестью удали его
    * Знания, как сделать ту или иную фичу. Потому что фичи повторяются (немного видоизменяясь) от проекта к проекту. И если ты сделал что-то за два дня, в следующий раз ты похожее сделаешь за три часа

    Что касается инструментов, выбери любой полноценный фреймворк, который умеет решать 90%+ потребностей "из коробки": Symfony, Django, Laravel

    Всякие "минималистичные" поделия вроде Falcon, Flask (в PHP не знаю, я на питоне пишу) оставь хипстерам. Пусть они говорят: "Мой фалкон такой быстрый, он написан на Cython". Тебя это не должно волновать, потому что бизнес с твоей скоростью разработки уже заработал достаточно денег, чтобы купить ещё десять серверов, пока фалконисты неделю гуглили, как прикрутить миграциии и запустить юнит-тесты на VPSке за пять баксов.
    Ответ написан
    5 комментариев
  • Есть ли смысл учить jquery?

    profesor08
    @profesor08 Куратор тега JavaScript
    Нечего там учить
    $(selector).css({});
    $(selector).each(el => void);
    $(selector).on("click", event => void);
    Ответ написан
    Комментировать
  • Как на самом деле работают типы данных в js?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Это больше академический интерес, хочу разобраться как оно работает.

    Это вы сейчас в очень глубокую нору заглядываете.

    Движки стараются оптимизировать по максимуму, поэтому там очень много всего накручено помимо наличия int32.
    Я не удивлюсь если в вашем конкретно примере они сделают просто a=1.5 в обоих случаях и код будет идентичный до байта.
    а потом эту a подставят куда надо и оптимизируют там еще что-то, например b=c+a превратится в b=c+1.5

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

    Например для каждой переменной во время работы записывается какой тип в нее приходит, если этот участок кода вызывается достаточно часто - он помечается "горячим" и затем смотрится, если у вас в "a" всегда один и тот же тип, то генерируется быстрый код для этого типа, и ставятся проверки, если вдруг придет что-то другое, то этот код выкидывается и происходит возврат к более общему.

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

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Для чего можно использовать 100кв.м-квартиру в 2019?
    Два санузла.
    Ответ написан
    Комментировать
  • Как реализовать идею?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Идея ваша сама по себе никому не нужна - таких же идейных людей с совершенно новыми концепциями на каждой лавочке по два. И ваша идея наверняка пришла в голову еще как минимум паре-тройке сотен других людей.

    Ценятся те кто что-то делает. Что вы уже сделали?
    Ответ написан
    3 комментария
  • Где хранить переиспользуемые интерфейсы typescript?

    Xuxicheta
    @Xuxicheta
    инженер
    Незаконно, файлы d.ts это для библиотек, написанных на js, которым нужны тайпинги.
    Если проект на typescript, то типы и интерфейсы следует импортировать явно.
    Либо из models(interfaces, types, ...whatever), либо из сервисов, которые с этими типами работают.
    Я склоняюсь к модульной структуре, т.е. интерфейсы лежат в отдельной папке, рядом с тем местом, где они применяются.
    Ответ написан
    8 комментариев
  • Как правильно прописать конфиг для Hibernate?

    Melkij
    @Melkij
    PostgreSQL DBA
    Java - это такой специальный язык для генерации километровых backtrace...

    Почему получив null value in column violates not-null constraint вы решили, что у вас проблема с подключением к СУБД? Вы пытаетесь вставить NULL в поле отмеченное как NOT NULL. Судя по тексту запроса - у вас не указано default значение для этого поля.
    Ответ написан
    4 комментария
  • Как с помощью .map() превратить массив объектов в объект?

    rockon404
    @rockon404
    Frontend Developer
    Интересно в первую очередь сделать это с помощью .map()

    Никак. Используйте reduce и по-хорошему объект или Map.
    var array = [
      { id: 1 },
      { id: 2 },
    ];
    
    const obj = array.reduce((acc, el) => (acc[el.id] = el, acc), {});
    
    console.log(obj); // { 1: { id: 1 }, 2: { id: 2 } }
    console.log(obj[1]); // { id: 1 }
    Ответ написан
    Комментировать
  • Как лучше организовать рабочее окружение для веб разработчика?

    Robur
    @Robur
    Знаю больше чем это необходимо
    В свое время сидел на винде (знал вдоль и поперек), чем больше становилось веб-разработки, тем больше проблем было, все решаемо но постоянно мелкие и не очень проблемы. Виртуалки, портированные шеллы, вот это все, потом плюнул, поставил линукс, настроил, поматерился на корявость интерфейса, и забыл винду совсем. Потом попался мак, настроил, поматерился на корявость интерфейса, привые и забыл эту убунту.

    Если хотите серьезно в разработку - переезжайте на linux/mac. Все можно делать и на винде, но в какой-то момент станет жалко времени на постоянное решение мелких и не очень проблем. Да и держать в голове две системы на хорошем уровне понимания незачем, есть и более полезные навыки которыми можно это место занять.
    Ответ написан
    Комментировать
  • Как грамотно преобразовать/кастинговать одного наследника к другому?

    Sputterspark
    @Sputterspark
    Никак. Борзая и мопс - оба наследник волка, но загнать оленя мопсами невозможно.
    Ответ написан
    7 комментариев
  • Почему удаляется элемент одного массива при удалении элемента в другом?

    Это базовые знания, объекты присваиваются по ссылке, простые типы по значению
    https://learn.javascript.ru/object-reference
    Ответ написан
    Комментировать
  • Зачем нужны маленькие React / Angular компоненты?

    vicodin
    @vicodin
    Имею некоторый опыт
    Не понял в чем вопрос, кнопку можно/нужно вынести в отдельный компонент, чтобы переиспользовать её в нескольких местах без дубликации кода. Всё.
    Ответ написан
    Комментировать
  • Стоит ли учить Grid и Flex css?

    Vlatqa
    @Vlatqa Куратор тега CSS
    Нет
    Вся эта мода приходит и уходит
    Учите таблицы, они будут жить вечно
    Ответ написан
    2 комментария
  • Не могу понять: как использовать геттеры и сеттеры?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Лучше прочитайте учебник, чем вкладки открывать. Толку больше будет.
    Ответ написан
    Комментировать
  • После перехода на https не грузится iframe?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Эта ситуация не может быть решена без перехода обоих сатов на одинаковый протокол, если у вас в https странице будут встречаться линки http - браузер автоматически заблокирует их. Никакие настройки на стороне сервера никак не влияют на поведение браузера в этом случае. Это просто настройка безопасности в браузере. Технически ее можно отключить в разделе настроек браузера "безопасность", но я не думаю что такое решение вас устроит.
    Ответ написан
    1 комментарий
  • Что делать если обманул фрилансер?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Заказ кривой и не доделан, Макс 30%

    взвешивали? Но за 7500 - 30% это уже не плохо

    В ватсаппе договорились об предоплате

    То есть то что он не доделан это норм?

    Итого:
    Вы нашли человека, который согласился за 7500+-7500 написать Вам карточную игру и даже что-то сделал за частичную оплату. Дал Вам исходники (не за полную стоимость) и вполне возможно, что они работают, просто Вы не разобрались (хотя поему они не должны работать если это не релиз версия).
    Я вижу ситуацию так: Вы очень странный заказчик, и не понятно по какой причине, преследуете разработчика.
    Ответ написан
    1 комментарий
  • Какой язык подойдёт для бекенда web-приложения?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer

    Язык должен быть компилируемого, а не интерпретируемого типа.
    Он должен быть кросс-платформенным (windows, linux) и не вызывать проблем при работе ни на том, ни на другом.

    Почему?
    Современные интерпретируемые java и python, да и php уже догоняет уже не совсем интерпретируемые, и используют jit компиляцию. По скорости уже вполне норм.

    Он не должен тянуть за собой тонны легаси и проприетарщины просто для работы, должен быть более-менее независимым.

    Тонны легаси и проприетарщины тянет не язык, а программист.
    Судя по вашим требованиям и оверхед подходу к выбору языка, вы только ТЗ будете писать месяцами. А к тому моменту, как вы выпустите в продакшн само прилжение, оно уже станет легаси.

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

    А как зависит "течь" от языка? Это зависит от криворукости программиста.

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

    То есть программа не должна есть много памяти, но при этом легко производить удаленный дебаг?

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

    Быстродействие всегда и зависит от программиста..

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

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Если коротко:
    >>Строгая типизация.
    до жопы, ибо с клиента чаще всего приходят нетипизированные данные, их все равно надо валидировать и приводить к нужному типу.
    >>Быстродействие.
    От задачи к задаче вы получите разное быстродействие на разных языках (сарказм по асм поскипан)
    >>Язык должен быть компилируемого, а не интерпретируемого типа.
    не совсем ясна мотивация, ну да ладно, хозяин барин...
    >>Он должен быть кросс-платформенным
    основные грабли кроссплатформенных яп - оконный интерфейс, в вебе будет проще, по этому почти любой современный яп подойдет.
    >>Он не должен тянуть за собой[поскипано многабукаф]
    Все что-то за собой тянет, и объем тянущегося зависит от возраста/развитости платформы, соответственно смотрите в сторону зеленых новичков, получив в придачу сыроватый функционал и слабо развитое коммюнити/доки.
    >>Этот язык должен быть стабилен
    стабилен в вашей интерпретации - мертв(ибо без изменеий нет развития), либо противоречит предыдущему пункту. Почти любое серьезное обновление ведет к изменениям в коде(и в частности пропадание/появление старых/новых либ нормальный процесс)
    >>Язык должен подходить для веб-разработки
    Почти все уже адаптировали под веб, ибо народу всегда интересно завести своего уродца под новую задачу (снова поскипан сарказм про асм)
    >>Хотелось бы, чтобы синтаксис такого языка был логичен и интуитивно понятен
    Бейсик в руки и вперед... Вы же понимаете что для каждого разработчика эти слова несут совершенно разный смысл, что одному логично и красиво - для другого велосипед на костылях...
    >>Программа, написанная на таком языке, не должна есть много памяти из-за каких-нибудь там виртуальных машин
    ВМ и прочие накладные расходы присущи своей группе языков, кроме прочего они обеспечивают повышение быстродействия в кроссплатформенной среде, часто превосходя по быстродействию даже компилируемые аналоги без ВМ, тут уже выбор будет прирост производительности/потребление памяти (впрочем, это верно и в целом, все крутится вокруг баланса потребления быстрой памяти и приемлемостью скорости обработки данных при снижении лимита ее потребления).
    >>Должно быть более-менее легко производить дебаг
    Сложнее найти современный язык без таковой возможности...
    Ответ написан
    3 комментария
  • Как реализовать это на чистом javascript?

    @DarkTemplar_0
    Познаю web-разработку
    var actionElem = document.querySelector("#acting"),
        orderElem = document.querySelector("#zakaz");
    
    actionElem.addEventListener("click", function() {
      orderElem.setAttribute("action", "/zakaz.php");
    });
    Ответ написан
    Комментировать