• Как использовать АОП в паттернах?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    5 комментариев
  • Выбор архитектуры: web или desktop?

    @rPman
    Web - на два порядка проще (читай дешевле) для разработки за счет повышенного требования ресурсов на клиентской стороне.

    Десктоп - возможно создание очень эффективных приложений но за счет очень дорогой поддержки всего разнообразия устройств и операционных систем (в веб этим занимается браузер и даже в этом случае приходится напрягаться)

    И главное, из веб приложения достаточно легко (например с помощью electron) можно сделать десктопное приложение.

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

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

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Как только такая появится, вы станете не нужны.
    Ответ написан
    Комментировать
  • Как эффективно освоить backend-разработку на Java?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    1. Читаешь учебник для начающих и практикуешься с примерами из него.
    2. Читаешь учебники для продолжающих и пилишь простой пет-проект.
    3. Пилишь пет-проект посложнее и читаешь документацию.
    Ответ написан
    Комментировать
  • Почему у меня не получается учиться, даже когда я все делаю все в точности как в видеоуроках?

    Adamos
    @Adamos
    Была такая история - про дрессировку приматов. Шимпанзе, если не ошибаюсь.
    Так вот, их довольно быстро удалось научить открывать кран, чтобы напиться.
    Ничего сложного, на самом деле. Человек показал, зверь собезьянничал, получил воду.
    НО! Их так и не удалось научить закрывать кран за собой. Мотивации-то нет.

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

    @Akina
    Сетевой и системный админ, SQL-программист.
    Порядок выполнения запроса может не совпадать с его текстом.

    А вот с планом он совпадает на 100% - ну просто потому что выполняется именно по этому плану.
    Ответ написан
    Комментировать
  • Как/чем обработать фото лица человека, чтобы оно оставалось ясным для людей, но по нему стало невозможно искать аккаунт в соцсетях?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Самый действенный способ - не выкладывать свои фото в соцсети.
    Проверено на себе. Работает.
    Ответ написан
    2 комментария
  • Как правильно связать php сайт с mysql?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    На частные вопросы ответили в комментариях, поэтому ответим на вопрос из заголовка.

    Чтобы соединить сайт с mysql, в РНР вообще-то есть два API - mysqli и PDO. Несколько лет назад с mysqli вообще невозможно было нормально работать, но на данный момент они выровнялись, хотя PDO все равно удобнее, по трем причинам
    1. Единый интерфейс при работе с различными СУБД (неактуально, если mysql для нас является синонимом слова база данных)
    2. Набор функций-хелперов для получения данных из БД в различных форматах (при желании легко воспроизводится вручную)
    3. Именованные плейсхолдеры (для некоторых это главная причина использовать PDO)

    Но в целом, как я говорил выше, сейчас можно использовать любое API. Главное - не использовать тот древний говнокод, который приведён в вопросе.

    1. Создаём файл`config.sample.php` куда кладем все настройки приложения, в том числе базы данных
    return [
    	'db' => [
    		'host' => '127.0.0.1',
    		'username' => '',
    		'password' => '',
    		'dbname' => '',
    		'port' => 3306,
    		'charset' => 'utf8mb4',
    	],
    ];

    2. В файле, который включается во все скрипты сайта, добавляем код
    if (!file_exists('config.php'))
    {
    	throw new \Exception('Create config.php based on config.sample.php');
    }
    $config = require 'config.php';

    3. И дальше в этом же файле пишем собственно нормальный код подключения к БД
    либо к mysqli
    // включаем режим информирования об ошибках
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    // подключаемся к серверу
    $dbc = $config['db'];
    $db = new \mysqli($dbc['host'], $dbc['username'], $dbc['password'], $dbc['dbname'], $dbc['port']);
    // не забываем установить кодировку, чтобы не было ошибок с кракозябрами
    $db->set_charset($dbc['charset']);

    либо к PDO
    $options = [
        \PDO::ATTR_ERRMODE            => \PDO::ERRMODE_EXCEPTION,
        \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
        \PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    $dbc = $config['db'];
    $dsn = "mysql:host=$dbc[host];dbname=$dbc[dbname];charset=$dbc[charset];port=$dbc[port]";
    $pdo = new \PDO($dsn, $dbc['username'], $dbc['password'], $options);

    После того как будет освоена работа с системой контроля версий (а по-хорошему это надо было сделать уже давно) добавляем config.php в файл .gitignore
    Таким образом на каждом хосте, где исполняется этот код, будет собственный файл с настройками, создаваемый по образцу из config.sample.php

    Да, и Очень Важное Дополнение:
    почему нельзя сделать 1 соединение для сайта и не тратить каждый раз время на коннект к БД?

    Никогда не следует переживать по поводу воображаемых проблем. Вот только когда создание коннекта каждый раз станет реальной проблемой, только тогда и начинать переживать по этому поводу и искать пути решения (спойлер: никогда).
    Ответ написан
    14 комментариев
  • Где хранится имя переменной?

    @Akela_wolf
    Extreme Programmer
    От сложного к простому:
    1. Программирование в машинных кодах. "Что такое имя переменной?". А нету его, как вы правильно заметили. На уровне машинного кода есть только циферки. Переменные могут храниться в регистрах процессора или в оперативной памяти по какому-то адресу. И программист должен везде указывать код регистра или адрес памяти к которому обращается программа. Впрочем, программирование в машинных кодах осталось далеко в прошлом (с появлением языков ассемблера, это конец 40-х).
    2. Язык ассемблера. Тут можно задать псевдонимы для адресов памяти. Но это именно псевдонимы. Так как на ассемблере программист полностью контролирует память программы - он сам решает какой блок памяти как называть. В процессе сборки ассемблер заменит псевдонимы на реальные адреса памяти.
    3. Языки высокого уровня (такие как C/C++, Паскаль, FORTRAN, LISP и т.п.). Компилятор сам планирует использование памяти и назначает переменным какие-то адреса (может разместить переменную в регистре, может в стеке, может даже в динамической памяти). На этапе компиляции в машинный код помещаются только адреса переменных.

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

    4. Байт-код. Это касается языков с виртуальными машинами, таких как Java, C# и подобных. Компилятор преобразует текст программы в промежуточный байт-код. И в этом байт-коде могут сохраняться имена переменных (в частности в Java сохраняются имена классов, полей классов, методов классов). Могут - потому что могут и не сохраняться, допустим не сохраняются имена аргументов функций и локальных переменных (в Java, про C# утверждать не буду), в байт-коде на них ссылаются по порядковому номеру. Нужны они в байт-коде для работы механизма рефлексии, то есть когда программа обращается "сама к себе", спрашивая: "Какие свойства есть у этого объекта?" (имеет смысл, например, если объект из какого-нибудь плагина, то есть код на момент своей компиляции об этом объекте и понятия не имел). Но когда виртуальная машина исполняет байт-код, то она преобразует его в машинный код в котором, опять же, каждой переменной сопоставлен какой-то регистр процессора или адрес памяти.

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

    opium
    @opium
    Просто люблю качественно работать
    Ненормально, вы тогда попросите заключить с вами трудовой договор с вами до финального собеседования
    Ответ написан
    Комментировать
  • Компания просит уволиться из текущего места работы перед собеседованием, нормально ли?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    В сад.

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

    Нормальная контора согласна ждать две недели, положенные по закону.
    Ответ написан
    Комментировать
  • План изучения C# чтобы стать C# junior - как улучшить?

    sarapinit
    @sarapinit Куратор тега C#
    Точу водой камень
    Могу дать список из личного опыта. Я менял профессию из эксплуатации телекоммуникационых систем перешел в программисты.
    К моменту получения 1й работы:
    - Я прошел 2 курса: Базовый по языку C# и базовый по TSQL (кстати тоже от ITVDN, лысый дядька норм объясняет).
    - Прочитал книгу Адама Фримена про asp.net.
    - Прочитал книгу Макконела "Совершенный код".
    - Научился в общих чертах пользоваться AspNet + EntityFramework + SqlServer

    Кстати, вот эта связка AspNet + EntityFramework + SqlServer очень часто мелькает в тестовых заданиях.
    Обычно хотят чтобы ты собрал простой сайтик-справочник, прикрутил к нему БД, прикрутил к нему авторизацию, и сделал пару форм и таблиц, чтобы продемонстрировать умение делать простой CRUD функционал.
    Надо сказать что книжка Адама Фримана примерно про это и рассказывает.

    На самом деле после трудоустройства и началось реальное обучение. Приходилось закрывать дыры в своих знаниях по вечерам и по выходным. Через год стало полегче. Наверное лучше найти какую-то стажировку еще на этапе обучения, чтобы пообщаться с реальными людьми и реальным кодом. Реальный мир лучше всего указывает недостатки и на то, что нужно изучать дальше.
    Ответ написан
    2 комментария
  • Если тратить по 8-10ч в день на программирование, возможно ли дорасти до уровня middle разрб?

    Достаточно много людей начинают работать на аутсорсе со 2-3 курса. Работа в команде для достижения уровня мидла дает больше чем 2 с половиной года по 8 часов в день.
    Если 8 часов в день кодить, можно двинуться кукушечкой и до мидла не дотянуть.
    Учи Английский, это правильно, говори на нем, в идеале с носителями, трать разумное время на теорию и практику в разработке, отдыхай и занимайся нетворкингом и успех тебе гарантирован.
    Ответ написан
    Комментировать
  • Можно ли установить компьютер на застекленном балконе?

    @kalapanga
    Не очень хорошо ему там будет.
    Как минимум у HDD рабочий диапазон температур обычно указан от 0 или от +5 градусов. Т.е. где-то на грани получается. Разьве что комп активно работает и сам себя хорошо греет.
    Лучше, наверное, не выключать его совсем. В выключенном ещё и смазка в кулерах застыть может, потом не стартуют.
    Ну и внеся потом домой перед включением не забыть дать прогреться и проветриться, чтобы конденсат ушёл.
    Ответ написан
    Комментировать
  • Как отключить обновления windows 10 в 2022 году?

    BestXakep
    @BestXakep
    Групповые политики вам в помощь и никаких проблем, чем плодить батники и засорять планировщик.
    Ответ написан
    2 комментария
  • Можно ли совмещать программирования с трейдингом или лучше выбрать что то одно?

    @taktik
    Sr. QA automation | SDET
    Трейдинг - это путь в никуда.
    Технический анализ работает только в половине случаев и только для определенного типа фин. инструментов.

    В трейдинге 80% игроков - это организации с Wall Street в которых сидят дядьки с дипломами ведущих американских вузов и с ученными степенями в математике и экономике. Следовательно вы автоматически попадете в 20% лузеров

    Абсолютное большинство трейдеров на длинном горизонте ничего не зарабатывают, либо оказываются в серьезном минусе

    Есть еще этический момент - занимаясь трейдингом вы ничего полезного не приносите в мир, не создаете никакой ценности. Вы просто пытаетесь обыграть других людей и присвоить их деньги
    Ответ написан
    4 комментария
  • Какие знания по базам данных необходимы начинающему back-end разработчику?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Судя по совершенно дремучим вопросам, которые задают на тостере, самая большая проблема у начинающих разработчиков - это принцип работы реляционной базы данных, представление данных в нормальной форме, базовые варианты связей, атомарность данных.
    Я недавно нагуглил книгу Святослава Куликова, полистал - вроде бы то что надо.
    https://svyatoslav.biz/relational_databases_book/

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

    Ну и базовый SQL.
    Про "сейчас многие и без него обходятся" - это чушь собачья.
    "Обходятся", во-первых, только на красивых картинках, не имеющих отношения к реальной жизни.
    А во-вторых, когда "обходятся", то в голове все равно держат конечный SQL. Если не понимать, что там тебе настроит ORM, то потом будет очень больно.
    Ответ написан
    Комментировать
  • Чему учит Марк Лутц?

    @AVKor
    Я новичок в программировании, и не совсем понимаю необходимости чтения книг.

    Изучение начал с просмотра 4-часового ролика на ютубе, где разъясняется весь синтаксис языка.

    Тогда лучше стать не программистом, а видеоблогером.
    Многие рекомендуют книги, и по Python именно Марка Лутца. Но полистав pdf-файл этой книжки я не смог найти ни одного куска кода, который был бы для меня не понятен.

    Встаёт вопрос: А есть ли смысл читать его?

    Нет. Лучше сразу послать резюме в крупнейшие ИТ-компании мира.
    Ответ написан
    Комментировать
  • Социальные сети и мессенджеры как устроены?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Странный вопрос.

    20 лет назад интернет был устроен так, как его устраивали технические энтузиасты.
    Сейчас интернет устроен так, как его устраивает крупный бизнес, а там где замешан крупный бизнес естественно приходит еще более крупный бизнес - политики.

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

    Все, что есть в свободном доступе - будет доступно политикам и мошенникам для анализа.
    Поэтому единственный способ соблюдать безопасность - минимизировать информацию о себе.
    Для каждого есть свой уровень - кто-то не против, чтобы его фотки видели все, кто-то против.
    Не пользуйся vk мессенджеров для "острых" разговоров.

    Мир уже просто изменился, и от твоего желания попасть в прошлое ничего не изменится.
    Ответ написан
    1 комментарий