Задать вопрос
  • Как не стать тупым в общении, профессионально занимаясь программированием?

    BBmike
    @BBmike
    Автор, иди продавцом на рынок или кассиром в макдак. Там одни экстраверты.
    остальные профессии в основном как раз про то, как человек сидит и делает свою работу.
    Ответ написан
    Комментировать
  • Как заработать школьнику на программировании?

    Будем честны друг с другом, не каждый опытный программер может реально зарабатывать фрилансом.
    На питоне заказов мало. В России фриланс это в 30% кидалово, в 50% мозгоебство на уровне профи.
    Тебе это надо? Чтобы за половину от реальной зарплаты джуна тебе все мозги выносили?

    Будь я сейчас в школе я бы занялся тремя вещами:
    1. Спорт
    2. Девушки
    3. Подготовка в нормальный вуз(берлинский технический например).

    От того что ты будешь зарабатывать 10 - 20 тысяч в твоей жизни ничего не изменится. Я думал что закончу универ, буду получать зп 20 и всё будет в шоколаде. Я получаю сейчас примерно в 2 раза больше моих хотелок. За год устал пропивать их, уже купил все ништяки что хотел. На что-то большее не хватит, квартиру и авто купить хорошую нужно или годами так же сидеть и себя ущемлять, либо получать зп в разы больше.

    В итоге отрывайся и учись, забудь о работе. Я тоже так думал в 15, сайты клепал, языки учил. Толку вышло конечно больше чем у окружающих, но вот в 25 нихера себя счастливым и обеспеченным не чувствую. От того насколько много ты получаешь или какие ты купил ништяки, счастье надолго не прибавляется.

    Сорян если огорчаю.

    Но программирование и электроника это реально профессии будущего, которые даже в РФ будут нормально получать.

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

    Я вот в школе когда был напросился ходить в универ на интересные лекции . Учился потихоньку, сверстники смотрели как на сумашедшего=))))
    Ответ написан
    1 комментарий
  • Как отловить сессию при выполнении php скрипта через ajax-запрос?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    ajax от не ajax ничем не отличается, в чем проблема работы с сессией как обычно? Хотя бы попробовали прежде чем вопрос задавать.

    Токен придумывают когда через ajax пинают api в котором сессий нет в принципе, поэтому авторизация возможна только альтернативными путями в виде токенов.
    Ответ написан
    7 комментариев
  • Как связать два языка программирования? при помощи каких методов?

    @krog
    Developer
    Можно сделать взаимодействие через http.
    Можно через общую базу данных.
    Можно через файл.
    Можно через систему обмена сообщениями.

    Если интересно подробнее, можно почитать здесь:
    https://www.amazon.com/o/asin/0321200683/ref=nosim...
    Ответ написан
    Комментировать
  • На чем можно построить модульную сетку для веба?

    abyrkov
    @abyrkov
    JavaScripter
    Еще есть table для любителей извращений
    Ответ написан
    8 комментариев
  • Широкий кругозор для профессионального программиста?

    AlexMaxTM
    @AlexMaxTM
    Поймите простую вещь, вы идете не экзамены сдавать, на собеседование. Бессмысленно читать ночь перед собеседованием и писать шпоры. В зачет пойдет только ваш реальный опыт, а не теоретические знания.
    Хотите список вопросов, на котором буксовали у меня люди на собеседовании?
    - Каким редактором вы пользуетесь? Какая версия, какие плагины стоят? Какая горячая клавиша для ... (Если человек буксует, значит он мало сидит за редактором).
    - Какую версию MySQL (или PostgreSQL) вы используете, в чем отличие от предыдущей версии?
    - В каких ситуациях необходимо использовать интерфейсы, но категорически нельзя использовать абстрактные классы. И наоборот, в каких ситуациях необходимо использовать абстрактные классы, но недопустимы интерфейсы, или трейды?
    - Даю листок бумаги и пишу длинное число 4923872788828228453. Даю задание, напишите регулярное выражение, чтобы разделить это число по три через пробел: 4 923 872 788 828 228 453. Число может быть произвольным. Если человек не в состоянии сделать это одним регулярным выражением, тогда предлагаю решить ему задачу любым другим способом, но на бумаге и без интернета. Просто интересно как он составит алгоритм. Задачки бывают разными, под рукой всегда было около пары десятков подобных примеров.

    Потому вы не сможете подготовиться к собеседованию, читая книги.
    Ответ написан
  • Какой принцип работы нескольких операторов ->?

    @kayart
    Это называется chaining - цепочка вызовов функций. Благодаря тому, что функция возвращает объект (чаще всего this), можно вызывать такие функции подряд, не прописывая их отдельно.

    Достаточно поискать в гугле запросы в стиле "PHP Chaining"
    В качестве примера - вот
    Ответ написан
    Комментировать
  • Использование Api сайтом, нужно ли?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Почему нельзя, просто, выделить common часть для обоих модулей?
    А в модель поста можно прописать метод который будет доставать и мапить результаты.

    Тогда у вас будет примерно такой код в rest:
    router.get('/', routeCache.cacheSeconds(20), async (req, res) => {
        const posts = await models.Post.getPostsList({ limit: 10 });
    
        res.json(posts);
    });


    и такой для сайта:
    router.get('/', async (req, res) => {
        const posts = await models.Post.getPostsList({ limit: 10 });
    
        res.render('index', { posts_list: posts });
    });


    Все просто и никаких костылей.
    Обращения сервера сайта к rest это лишний код и лишние операции.

    Метод res.json() сам добавляет к ответу заголовок Content-Type со значением 'application/json' если он не добавлен до этого.
    Ответ написан
    Комментировать
  • Приведенный мною код - одно и то же? Или один работет быстрее / эффективнее, а другой - нет?

    Exploding
    @Exploding
    wtf?
    Гггг))) Как бы с первого взгляда и одно и то же, но не совсем.
    Если первый вариант юзать на практике - далеко не всегда ваш ".button" будет совпадать с тем, что находится в таргете. Например на кнопке иконка/рисунок/etc. Поэтому вам придется дописывать специализированный костылеподобный изворот типа:
    if ($(e.target).closest('.button').length){
    	//....
    	e.stopPropagation();
    }

    что само по себе уже не совсем тоже самое, как предпогалолась в вопросе.
    К тому же, не будет возможности использовать .trigger() для .button
    Ну и не известно сколько еще потом по вылазит глюков, требующих, чтоб и их подперли чем-то...
    В итоге получится явно не быстрее и не стабильней чем в либе. Там как ни как сидят, почесывая башни изо дня в день, думая как еще оптимизировать и стабилизировать работу методов. Версий то вон уже сколько вышло.

    UPD
    Просто когда жму Event Listeners в chrome - там у каждого элемента оочень много listener'ов

    Во втором варианте слушатель вешается не на кнопку, а на документ. Видимо у вас просто установлен чекбокс на "Ancestors".

    Ну а если вам взбредет в голову все таки писать свою реализацию делегирования, то в лучшем случае, как мне кажется, вы придёте к оригинальной реализации метода jq.
    Ответ написан
    Комментировать
  • Можно ли передать яндекс метрике url при динамической загрузки контента?

    Exploding
    @Exploding
    wtf?
    Я хз, но пока всё что придумал, это перед загрузкой данных снести вообще всю метрику к чертям и после загрузки - опять все добавить... Как бы намекая ей, что это была перезагрузка страницы))))
    P.S. Как маленькому ребенку закрывая глаза - "а ку-ку, опа нет мамы, опа - есть мама")))))))
    Ответ написан
  • Почему Линус не любит C++?

    @lesha_penguin
    <Мысль_вслух>Если существует специальный «ад для говнокодеров», то наверняка, одним из самых жестких наказаний в нем была бы отладка того говнокода, который, который в С++ получается по принципу «делается более просто и изящно».</Мысль_вслух>

    Если начинать «от сотворения мира»:

    1) Как известно C++ был был придуман Страуструпом, мы не будем умалять его «ученные регалии» (ученных-то наград куча, но они по сути единственное чего «добился человек», кстати, 90% прямо или косвенно за c++). Однако, заметим, что Страуструп — как раз есть пример «чистого теоретика» (в отличии от «практика»-Торвальдса), т.е. является человеком за свою жизнь не принимавшим участия в разработке ни одного серьезного реального программного проекта. По сути компилятор c++ — единственное более-менее практическое дело в его жизни. Соотвественно о том с какими проблемами приходится сталкиваться в реальном «software development-е» с «высоты его ООП-теорий» он имеет весьма посредственное представление.

    2) Как верно заметили, в упомянутой статье, изначально это был как раз «Це с классами», т.е. изначально НЕ БОЛЕЕ ЧЕМ «академическая» попытка навернуть на C отдельные элементы «обьектности» (типа, Smalltalk обьектный, а давайте попробуем сделать такое на более низком уровне). Кстати, могу Вам сказать, что с C++ я впервые познакомился в 80-90е годы, когда языком «ученной среды» был Фортран, языком «системщиков» Си, а для обучения «всех непрофильных специальностей» основам программирования использовались Basic и Pascal. Да, но правда «тогдашний C++ 80» отличался от нынешнего — он реально производил впечатление «просто прикольной поделки» (на память помню, что например, тогда не было и половины привычного функционала например таких вещей как всяких «reinterpret_cast-ов» или namespac-ов.). Кстати, да… барабанная дробь… НЕ БЫЛО STL!!!

    3) Наверное Страуструповский «Це с классами», наверное так бы и остался в списке «прикольных поделок» в аналах истории, если бы не одно обстоятельство: «ВНЕЗАПНО» произошел «софтверный бум», соотвественно: a) «элитных» «олдскульных» программистов стало резко не хватать b) «требования к качеству софта» резко упали c) понадобилось средство для генерации достаточно низкоуровневого «говнокода в промышленных масштабах». И как ни странно, (ага, угадали, именно с появлением в C++ STL-я) C++ так и не избавившись от своих «академических болячек» был брошен в пучину «мейнстрима».

    4) Вам говорят истинную правду, когда говорят, что «C++» это маркетинговое название для «Це с классами». Да, это так. И можно сказать, к великому сожалению, он нашел свою рыночную нишу. (Сейчас любой дурак может легко «освоить C++ за 21 день (с бустом и стлем)», при этом не умея даже внятно ответить на простой вопрос «Если ты такой умный, обьясни тогда почему, c$k@, у тебя программа течет по памяти и падает», (про такие «неполиткорректные вопросы», как «зачем писать 100 строк на то, что пишется в две-три», мы вообще тактично молчим, а то, мало ли, может у человека «сдельная зарплата» за количество строк ;) ), зато с видом крутого Беара Грилса можно обсуждать такие «высокие материи» как «Паттерны» и «чистый ООП»).

    5) И к самому большему сожалению, в некоторых случаях альтернативы нет. Да, Я еще не встречал ни одного программиста, который в действительно реальной разработке софта активно использовал бы C++ и при этом от него бы не плевался. У C++ есть «Огромный ПЛЮС» — Его Мультипарадигменность! По-сути это его единственный плюс, позволяющий «не уйти в дебри» (типа попыток запихнуть «main()» в обьект только ради «идеи чистого ООП»)!

    6) А теперь, после такого «исторического» вступления еще раз перечистайте внимательно письмо Торвальдса, высказывание человека который лучше многих «теоретиков чистого ООП» знает как это оно «на собственной шкуре» разрабатывать сложные системы, и комментарии от хабраюзеров, которые «на живой практике» знают «почем фунт лиха» в топике. Под большинством утверждений я лично бы поставил свою подпись золотыми буквами.
    Ответ написан
    5 комментариев
  • Как связать booking.com со своим сайтом на wordpress?

    @BorisKorobkov
    Web developer
    Комментировать
  • Как писать юнит-тесты для скриптов которые работают с базами данных?

    27cm
    @27cm
    TODO: Написать статус
    Тест перед запуском создает чистую базу данных специально для тестов.
    Если код упростить, это выглядит примерно так:
    protected function setUp() {
        parent::setUp();
    
        // Файл с дампом базы в tmp-директории
        $dumpFile = tempnam('path/to/project/local/test-tmp', 'autotests_dump_');
    
        // В начало файла с дампом пишем команды для пересоздания тестовой базы
        $sql = "DROP DATABASE IF EXISTS `autotests_dbname`;\n"
             . "CREATE DATABASE `autotests_dbname` DEFAULT CHARACTER SET = utf8;\n"
             . "USE `autotests_dbname`;\n";
        $this->exec('echo ' . escapeshellarg($sql) . ' > ' . escapeshellarg($dumpFile));
    
        // Делаем дамп с основной базы только структура таблиц, триггеры и т.п.
        // Это может быть локальная dev база.
        $this->exec('mysqldump --no-create-db --no-data --routines local_dev_dbname >> ' . escapeshellarg($dumpFile));
    
        // Добавляем в дамп файл bootstrap.sql c командами
        // для наполнения базы минимально необходимыми данными
        $this->exec('cat path/to/project/tests/bootstrap.sql >> ' . escapeshellarg($dumpFile));
    
        // Создаём тестовую базу
        $this->exec('mysql < ' . escapeshellarg($dumpFile));
    }
    
    private function exec($cmd) {
        exec($cmd, $out, $err);
        if ($err) {
            throw new Exception("Command execution failed: {$cmd}");
        }
    }


    Работает довольно шустро.
    Ответ написан
    Комментировать
  • Как получить данные Api через Post (PHP)?

    Decadal
    @Decadal
    POST это метод запроса. Если вы умеете в curl - вы умеете делать POST запросы. Если нет - читайте про Curl или Guzzle. Это те самые утилитки и библиотеки, которые позволяют серверу сделать запрос на другой сервер (в том числе и методом POST).
    Ответ написан
    Комментировать
  • Java ( с либами ) против Node.js, что выбрать для вебсервиса?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    В Spring 5 есть WebFlux, который работает поверх Netty. А Netty это такой замечательный асинхронный фреймворк, про который один из инженеров Netflix'а писал, что у них один инстанс держит в среднем 20 000 одновременных соединений, пропуская через себя 40 Гбит/с трафика. На хабре ещё была статейка про написанную на Netty систему управления IoT-устройствами, которая обрабатывает 980 000 соединений с секунду, работая при этом на двух DO'шных VPS'ах за 20 и 40 баксов в месяц.
    Ответ написан
    2 комментария
  • Является ли хорошей практикой делать интерфейсы даже тогда, когда класс не планируется заменять?

    @ImSorry
    В этой статье хорошо написано, когда нужен интерфейс и зачем он нужен
    sergeyteplyakov.blogspot.com/2014/12/what-are-inte...
    А от себя добавлю, что фанатичное придерживание принципов SOLID может привести к обратному, а именно увеличению сложности проекта.
    Ответ написан
    4 комментария
  • Как сделать документацию к коду?

    @kn0ckn0ck
    Продюсер
    Есть две крайности, которых лучше избегать:
    1. красивая и исчерпывающая документация требует колоссальных ресурсов на поддержку
    2. сложно воспринимаемый код, без малейших подсказок с чего все начинается и чем заканчивается

    Стандартные решения:
    1. самодокументируемый код, составленный так, что читающий может понять что для чего и в какой последовательности работает.
    2. описание интерфейсов (назначение метода, тип/суть параметров и т.п.) в форме комментов в коде.
    3. автоматическая документация (генерится из комментариев) - эффективно, только если сам код закрыт.
    4. модульные тесты, фиксирующие требования к коду и демонстрирующие его использование.
    5. описание высокоуровневого дизайна (High Level Design, HLD), описывающий какие элементы существуют, их взаимосвязь друг с другом и основные сценарии взаимодействия.

    Работающая документация - это компромисс из этих практик, релевантный конкретной ситуации.

    Кстати, проектная работа, это не только документация к коду, это еще и свод правил, которые позволят архитектуре не расползтись кто в лес кто по дрова, а также сохранят стилистику написания кода для единообразия и легкой поддерживаемости кода.
    Ответ написан
    12 комментариев
  • Программисту нужна слепая печать?

    rockon404
    @rockon404
    Frontend Developer
    Я считаю, что это один из обязательных навыков, которые должен освоить каждый программист.
    Работать в разы комфортней и быстрей.
    Скорости в 120-180 символов в минуту хватит с головой.
    Ответ написан
    Комментировать
  • Как написать исключение для подобного на yii2?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Для этого в rules модели добавляете валидатор на уникальность
    www.yiiframework.com/doc-2.0/yii-validators-unique...
    Ответ написан
    1 комментарий
  • Какой стек технологий лучше использовать?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    jquery развивается и списывать его еще очень рано. Он выполняет задачи совсем отличные от react и т.д. Однако сказать что в нем есть удобные элементы для druganddrop я не могу. Но есть куча библиотек, которые реализуют именно это, например:
    https://shopify.github.io/draggable/
    Советовать Вам тот или иной фреймворк по двум строчкам описания проекта не считаю разумным. Возможно будет вообще оправданно использовать для интерфейса svg и canvas, а для них куча библиотек есть типа https://d3js.org/ или svgjs.com и там своя реализация drag and drop и лепить к ним js фреймворк будет уже не совсем нужно.
    Ответ написан
    Комментировать