Задать вопрос
  • Есть ли области в программировании, где не надо писать бизнес логику?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    К примеру на Java пишут банковский софт, в котором учитывают ценные бумаги, и программист закрывает таски, например, создать кнопочку (написать модуль) для списания с баланса реализуемых ценных бумаг по методу ФИФО. А потом появляется новое требование к модулю, чтобы можно было и по методу ЛИФО, а потом решили все переделать по указке бухгалтерии и сделать все по средней себестоимости.


    В игре, программист создает кнопочку (пишет модуль) для списания золота с баланса и получения крафтового топора. А потом появляется новое требование к модулю, чтобы кроме золота требовало еще и медь, а может еще и рецепт, а может в зависимости от населения текущего города ставило скидку гномам и надбавку эльфам, а людям по средней себестоимости.

    Вы реально считаете, что программирование возможно без этой "мути" ?
    Ответ написан
    7 комментариев
  • Какие сертификаты для frontend-developer'а существуют?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Единственный вменяемый сертификат - крутое портфолио. Никому не интересны эти ваши ачивки. Работодатель будет смотреть на то что вы умеете, а не на эти фиктивные сертификаты.
    Ответ написан
    1 комментарий
  • Что означает $this-> -> в PHP?

    Stalker_RED
    @Stalker_RED
    Вообще крутой ход - изучать фреймворки ни слова не почитав о ООП.

    $this как правило указывает на экземпляр класса, а после "стрелочки" метод или свойство.

    Такой прием с цепочками вызовов называется "method chaining".

    Почитать можно документацию php.net/manual/ru/language.oop5.php
    Или какой-нибудь учебник, где более "живым" языком расскажут.
    Ответ написан
    1 комментарий
  • Какой зарубежный интернет-эквайринг подключить?

    @abbaboka
    То, что вы хотите сейчас всячески прессуется и преследуется по основаниям "уход от налогов", "отмыв денег".
    Везде.
    Ответ написан
    7 комментариев
  • Проблемы с PHPMAILER?

    alexxxst
    @alexxxst
    $_FILES['file'] – это массив, а ожидают строку. В тексте ошибки всё ж написано. Начать нужно с английского, потом уже в похапе.
    Ответ написан
    3 комментария
  • Как в ванильном JS строить цепочки функций?

    muzikant777
    @muzikant777
    PHP/Vue разработчик
    Паттерн, о котором вы говорите, называется Fluent interface

    Собственно, ссылка ведёт на пример реализации:
    var Car = (function(){
    
    	var speed, color, doors, pub;
    		 
    	function setSpeed(new_speed) {
    		speed = new_speed;
    		return pub;
    	}
    	 
    	function setColor(new_color) {
    		color = new_color;
    		return pub;
    	}
    	 
    	function setDoors(new_doors) {
    		doors = new_doors;
    		return pub;
    	}
    
    	pub = {
    		'setSpeed': setSpeed,
    		'setColor': setColor,
    		'setDoors': setDoors,
    	};
    
    	return pub;
    
    })
    	
    // Обычная реализация
    myCar2 = Car();
    myCar2.setSpeed(100);
    myCar2.setColor('blue');
    myCar2.setDoors(5);
    	 
    // Текучий интерфейс
    myCar = Car();
    myCar.setSpeed(100).setColor('blue').setDoors(5);
    Ответ написан
    2 комментария
  • Можно ли школьнику лет 12 начинать самому изучать web-программирование?

    greenfox07
    @greenfox07
    Можно, даю добро
    Ответ написан
    Комментировать
  • Как передать в props результат асинхронной функции?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Функцию вызывайте при создании экземпляра компонента, результат записывайте в свойство (кажется, у вас уже есть подходящее - api). Ту странную штуку с computed свойством вырежьте. Выглядеть это будет примерно так:

    created() {
      accessAPI().then(result => this.api = result);
    },

    <imgMap :api="api"></imgMap>

    Если в дочерний компонент не должны передаваться пустые данные, не надо его рендерить, пока данные не будут получены:

    <imgMap v-if="api" :api="api"></imgMap>

    UPD.
    Вынесено из комментариев:

    не могу напрямую вызывать асинхронные методы из обьекта они недоступны. Сейчас я решил проблему так:
    props: {
        api : Object
    },
    data() {
        return {
            apiLocal : null
        }
    }
    async mounted() {
        this.apiLocal = await this. api;
        await this.apiLocal.methods1();
    }

    Вы по-прежнему в качестве значения параметра api передаёте промис. Надо в родителе дождаться его результата - тот первый await из вашего mounted, он в родительском компоненте должен быть. Он, или эквивалентный ему then с коллбеком - как в примере выше.
    Ответ написан
    1 комментарий
  • Как не загружать товары по новой, если они уже есть в базе?

    @Wentixon
    Сначала ты собираешь ссылки, которые будешь парсить. Так вот запиши эти ссылки в отдельную таблицу. В следующий раз при сборе ссылок собственно получай ссылки, которые уже есть и исключая их, оставляй новые
    Ответ написан
    4 комментария
  • Веб студии просто не выставляют многие работы в портфолио или в свободное время на стройке работают?

    bingo347
    @bingo347
    Crazy on performance...
    Когда я на старте своей карьеры работал в веб-студии (давно было, но не думаю, что что-то кардинально поменялось), сайты клепались пачками, по несколько штук в день. Естественно 90% из них были как под копирку, отличаясь лишь контентом. Смысла выставлять 100500 однотипных сайтов в портфолио просто нет
    Ответ написан
    Комментировать
  • Как выглядит современный процесс верстки?

    @coderxx
    keep calm and learn js
    Не уверен что начинающим верстальщикам нужно заморачивать себе голову всем этим ужосом:) Но может кому-то и пригодится:
    - создаю новый проект на базе немного допиленного Optimized4HTML (можно копировать папку руками, можно сохранить в PhpStorm как темплейт, второе разумеется удобнее). Проект имеет следующую структуру:
    5c13ab56a03e8108817224.png
    - открываю его в PHPStorm, через командную строку устанавливаю пакеты и запускаю вотчер со следующей конфигурацией:
    5c13ad0d5c912921297608.png
    (таким образом отслеживаются изменения в файлах index.html, *.scss, common.js, а так же релодится браузер; в процессе верстки просто перескакиваем на виртуальный рабочий стол с открытым сайтом и сразу видим изменения, а если есть второй монитор то вообще песня). Кстати, перечень пакетов ннада?
    5c13ae2b57082880473288.png
    - из плюшек emmet и sass обязательно, в качестве таскранера - gulp.
    - макеты у меня в .sketch, так же кто не пробовал советую попробовать Figma, получите практически скетч в браузере. Adobe Photoshop не люблю. Adobe XD не пробовал, но осуждаю. Здесь наверное больше дело вкуса и реалий, в которых вы работаете (например, в каком формате получаете макеты, какая ОС на рабочем компе).
    Вроде все просто. Что непонятно - спрашивайте, отвечу.

    UPD. Optimized4HTML недавно перешел на Gulp 4, советую попробовать. Учтите, что Gulp 4 не имеет обратной совместимости с галпфайлами предыдущей версии, так как немного изменился синтаксис.
    Ответ написан
    9 комментариев
  • Отношение ПС к автогенерируемому контенту?

    @BorisKorobkov
    Web developer
    Вашу идею уже давно реализовали: https://yandex.ru/referats/
    Ответ написан
    Комментировать
  • Имеет ли место программирование без языка программирования?

    usdglander
    @usdglander
    Yipee-ki-yay
    Умение мыслить алгоритмически - основополагающее в программировании. Язык - это всего лишь способ описания алгоритмов.
    Ответ написан
    7 комментариев
  • Базовые знания для дизайнера?

    @McBernar
    Слушай, я понимаю, что ты хочешь, но, боюсь, здесь нет ответа.

    Задача проста — систематизировать знания и закрыть пробелы. Но, к сожалению, нет никакого универсального и всеобъемлющего курса, пройдя который ты обретешь все знания. Сейчас гораздо больше информации, чем было во времена, когда я начинал карьеру дизайнера, но количество не говорит о качестве.

    Из того, что можно точно выделить:

    1. Советы Горбунова. Школа у них чудовищная, но вот в советах очень много полезной информации. И, по-моему, они эти советы перенесли в формат электронных книг. Там и по интерфейсам темы и по академическому дизайну и много ответов на разные вопросы по копирайтингу/менеджменту/развитию. В общем, довольно ценный ресурс.

    2. Школа Тильды. Это набор последовательных статей. Там описан в некоторой степени утопичный дизайн-процесс, но именно к такому процессу и нужно стремиться при работе в команде дизайна. Они рассказывают о дизайн-мышлении, о картах, персонажах и прочих ментальных инструментах. Это материал не для новичка, а для мидла скорее. Сейчас большинство крупных западных команд работает в +- подобном ключе.

    3. Книга "Психбольница в руках пациентов". Классика. Читается как роман, ставит мозги на место сразу. Ты начинаешь решать задачи, а не рисовать пиксели.

    Многие скажут, что нужно обязательно прочитать Тафти. Лично я читал его, но это невероятное занудство — более скучных книг нет на всей планете, наверное. Если ты хочешь быть прям как Бирман какой-нибудь — дотошным любителем схем, инфографики и вот этого всего, тогда это маст рид. Есть еще Раскин, который решил описать работу над интерфейсом в академическом стиле. Тоже считается некоей библией. По занудству находится примерно рядом с Тафти. Но мне кажется, что это примерно как учить английский язык по словарю.

    Если же ты работаешь над массовыми продуктами — веб, прилки — лучше потратить время на что-то продуктовое. Лучшая книга для этого — биография Джобса от Айзексона. После прочтения мир как будто проясняется, а до этого ты все время, оказывается, ходил в тумане.

    И самое главное — научись верстать. Не просто понять базовые теги html, а по-настоящему. Чтобы твой код был почти готов уйти в продакшен. Ты откроешь для себя сторону дизайна, которая всегда оставалась в тени — то, как твой продукт реально работает, а не то, как ты себе это представляешь, глядя на картинку. Например, ребята из Apple всегда делают сотнями пенопластовые и пластиковые макеты для новых Айфонов, крутят их в руках, ходят с ними в карманах и т.д. Только так можно прочувствовать форму, понять изъяны и улучшить продукт. Картинка ничего не говорит о проекте, нужно уметь ее материализовать. В вебе с этим помогает верстка.
    Ответ написан
    3 комментария
  • Как связать модель настроек пользователя с моделью User?

    @Kostik_1993
    Web Developer
    Логично что в модели User вам нужно создать связь settings с моделью UserSetting, тем самым вы сможете получить их как Auth::user()->settings
    Ответ написан
    Комментировать
  • Как выбрать архитектуру и БД для высоконагруженной системы?

    @stratosmi
    Добрый день! Хотел посоветоваться с опытными бэкэнд программистами.
    Встала задача создать высоконагруженный проект (Типо кассового решения). В базе данных через 1-2 года планируется , около 150млн записей у основной сущности (продажа).


    150 миллионов записей - это ерунда, а не высоконагруженное решение.
    У меня 5 000 записей в секунду создается на довольно дохлом (что-то около 500 рублей в месяц стоит хостинг) сервере VDS/VPS
    Два года? 150 миллионов - это за ... 9 часов.
    И да, я не считаю это решение высоконагруженным.
    Нагруженным - да.

    то есть нужно максимально быстрое чтение этих данных

    Нет.
    Людям не нужно снимать отчеты со всех данных сразу. Только часть данных интересует их.

    Если всё же нужны все данные сразу (ну какая-то общая статистика) - то на основании первичных данных выполняется агрегация (например, по ночам) и тогда отчеты будут строится вообще - мгновенно.

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

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

    Это зависит от того что за данные.
    Что именно за данные.
    Сам пишу на mysql - потянет ли он такие объемы, на нормальном железе. Или нужно смотреть в сторону других БД?

    MySQL довольно быстр.
    Например, PostgreSQL более функционален. Но насчет скорости - не обязательно.
    потянет ли он такие объемы, на нормальном железе

    А в официальную документацию заглянуть?
    https://dev.mysql.com/doc/refman/8.0/en/limits.html
    150 млн. записей для современных СУБД и современных компьютеров (даже не на "нормальном железе") - это тьфу, а не нагрузка.

    P.S.:
    Для высоконагруженных систем формирования отчетов есть различные решения:

    1. Предварительная (ночная) агрегация данных
    2. Master-slave, где master только обновляет данные, а slave - только для отчетов.
    3. Специализированные, заточенные под конкретный вид данных СУБД (InfluxDB, Redis-Tarantool-Aerospike, ClickHouse пр.)
    Ответ написан
    4 комментария
  • Каким образом можно ограничить доступ геттерам и экшенам группам пользователей в Vue?

    @nvdfxx
    Senior Pomidor developer
    Может лучше загружать список инвайтов по api, если role==admin, иначе оставлять его null? Зачем загружать его всегда, а потом переживать за безопасность?
    Ответ написан
    2 комментария