• Как перестать говнокодить и принимать неверные архитектурные решения?

    miraage
    @miraage
    Старый прогер
    как писать поддерживаемый код?

    Если уж очень коротко, то соблюдать SOLID/GRASP. Мне понравился твит одного из авторов React Router:
    https://twitter.com/mjackson/status/1171524189850701825

    Most common mistake software developers make: putting stuff in the wrong place. Coupling responsibilities and concepts that should be kept separate.
    For me, this is 95% of software development. Just figuring out *where* things belong.


    Что гуглить, что учить?

    Фундаментальные знания, вроде вышеупомянутых SOLID/GRASP, паттерны (не только классические паттерны, но и вообще, общеизвестные решения определённых задач), базовые структуры данных. Фреймворки/библиотеки всегда будут приходить/уходить, что-то будет забываться. А фундаментальные знания всегда актуальны.

    Может литературу какую почитать посоветуете?

    Скажу за себя. Ни одной из этих известных книжек за свою жизнь не прочитал. Писал много говнокода дома, очень много. Удалял, переписывал. Смотрел код других людей, анализировал, пытался перенять то, что считал правильным.

    Можно ли себя называть миддлом, если твой код говно?

    Не пытайтесь себя оценить. В каждой компании свои понятия миддла. А если кто-то 35 лет на лиспе кодил, а потом прыгнет на Angular - кто он, джун или сеньор?
    И, да, все мы в какой-то степени пишем говнокод. Если кто-то Вам доказывает, что он пишет супер чистый код - не слушайте.

    И ответ на главный вопрос.
    Как перестать говнокодить и принимать неверные архитектурные решения?

    Это невозможно. Все проекты, которые чуток сложнее CRUD-ов, рано или поздно обрастают говнокодом. Никто не пишет идеальный код. Код должен работать и решать проблемы бизнеса.
    Ответ написан
    6 комментариев
  • Есть ли сервисы/программы для прогнозирования следующего числа/диапазона чисел?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    В нейросетях не разбираюсь, на фриланс денег нет.
    Прям как я! :)

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

    Смотрите на капли дождя.

    UPD: по-скольку это функция RAND в PHP, то код - открыт.
    Смотрите на типы и общее кол-во всех генераторов и формируйте граф "бинарное дерево", содержащий верхний и нижний диапазоны.
    При попадании в нужный диапазон - "погружайтесь вглубь" по иерархии графа (увеличивайте разрешение точности) и т.д. пока не найдёте точное значение.
    Ответ написан
    4 комментария
  • Открыть csv с кириллицей в MS Excel?

    REKTOR_RG
    @REKTOR_RG
    Вам необходим utf-8 с BOM
    UPD:
    Как это сделать:
    .to_csv('file.csv',encoding='utf-8-sig')
    Ответ написан
    2 комментария
  • Как правильно обработать большой JSON файл, расположенный на удаленном сервере?

    @remzalp
    Программер чего попало на чем попало
    JSON такого объема в принципе идея плохая. Встроенная функция json_decode умрёт, придётся писать какой-то парсер.
    Потому что эти 15 гигабайт должны будут целиком загрузиться в оперативную память, потом перестраиваться в объект. Итоговое потребление оперативной памяти пророчествую, не меньше 30 гигабайт и то считаю себя наивным.
    Ключевая проблема - файл нельзя читать порциями по заранее известному разделителю, получая валидные фрагменты JSON.
    Возможно добрые люди уже сделали из этого файла пачку JSON - просто дописывая построчно отдельные объекты, но тут лучше показать фрагмент файла, чтобы предлагать методы оптимизации.

    Посмотрите такой вариант для командной строки, запускайте на сервере который не жалко, возможно придётся потом его ронять в перезагрузку - https://stedolan.github.io/jq/

    Более цивильный вариант - CSV, читать построчно, копить пакет запросов в БД, пачкой в несколько десятков запросов лить в базу.

    UPD: гениальный вариант - а если залить это счастье напрямую в MongoDB, а потом по отдельным записям кромсать - получится?
    Ответ написан
  • Проблемы с PDO в ООП, что делать?

    myks92
    @myks92 Куратор тега PHP
    Нашёл решение — пометь вопрос ответом!
    Решение:
    class Database {
      private $mysqli;
    
      public function __construct(){
        $dsn = "mysql:host=localhost;dbname=banan165_database";
        $this->mysqli = new PDO($dsn, "root", "");
      }
      public function query($sql){
       return $this->mysqli->query($sql);
      }
    }
    
    $db = new Database();
    $db->query("INSERT INTO categories(name) VALUES('PDO')");


    Но если правильно - так не делается.
    Ответ написан
    7 комментариев
  • Установка 32 битных библиотек boost в ubuntu?

    Radjah
    @Radjah
    Добавить архитектуру i386.
    sudo dpkg --add-architecture i386
    Поставить пакет libboost-all-dev:i386 или только нужные dev с указанием архитектуры.
    Скорее всего понадобится еще пакет gcc-multilib.

    Добавь в параметры запуска компилятора флаг -m32

    Раз https://www.geeksforgeeks.org/compile-32-bit-progr...
    Два https://stackoverflow.com/questions/1272357/how-to...
    Ответ написан
    Комментировать
  • Как удовлетворить зависимости?

    @nihi1ist
    Пакету требуется более новая/старая версия libssl-dev. Или репозитории криво подключили.

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

    sim3x
    @sim3x
    Раньше воспринимал разговоры на эту тему областью компетенции старух
    и продолжайте так делать

    То что вы думаете, что оно работает не означает, что оно работает
    Плацебо/ноцебо

    Вместо размышлений - укрепляйте мускулатуру и выносливость

    https://www.youtube.com/watch?v=NgOVN4050ow

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

    Вот только в таком режиме невозможно быть всегда
    Ответ написан
    Комментировать
  • Чем является "все права защищены" на сайте?

    Извещение о копирайте требуется Женевской конвенцией об авторском праве (и некоторыми более ранними, например Буэнос Айресской), без него опубликованный материал в странах являющихся участниками только Женевской конвенции может быть использован как общественное достояние.
    Однако, в настоящее время практически все страны охраняющие авторское право, включая Россию (с 1995 года) являются участниками Бернской конвенции, в которой действует принцип презумпции авторского права (оно существует с момента создания произведения и не зависит от знаков копирайта, регистрации и т.п.), законодательство РФ так же соответствует Бернской конвенции, поэтому на практике знак копирайта в настоящее время ни на что не влияет.

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

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Надпись напоминает, что контент защищён авторским правом. Особую правовую нагрузку надпись не несёт, а означает, что создатели сайта знают последствия воровства контента и готовы отстаивать свою правоту в судебном порядке. Без этой надписи права защищаются так-же. Короче это напоминалка.
    Документально авторские права можно и не оформлять. От этого они не теряются. Копирайтеры обычно предпринимают действия для облегчения сбора доказательной базы, что контент - их.
    Как подготовить доказательную базу, что "вы - первый" - есть отдельные развернутые статьи. В рамках ответа они не поместятся.
    Ответ написан
    1 комментарий
  • Что приходит в браузер?

    deepblack
    @deepblack
    Вот пример того, что возвращает веб сервер:
    HTTP/1.1 200 OK
    Date: Sun, 18 Oct 2009 08:56:53 GMT
    Server: Apache/2.2.14 (Win32)
    Last-Modified: Sat, 20 Nov 2004 07:16:26 GMT
    ETag: "10000000565a5-2c-3e94b66c2e680"
    Accept-Ranges: bytes
    Content-Length: 44
    Connection: close
    Content-Type: text/html
    X-Pad: avoid browser bug
      
    <html><body><h1>It works!</h1></body></html>


    Прямо так, в текстовом виде.
    Можете проверить воспользовавшись telnet (только без использования https), в зависимости от сервера будут отличаться заголовки.

    Вот тут немного подробнее.

    + ознакомьтесь с RFC 2616
    и в догонку Resources and specifications
    Ответ написан
    3 комментария
  • Как работает password_hash?

    Комментировать
  • Правильно ли записывать CSRF токен в cookie?

    DevMan
    @DevMan
    зачем его писать в куки, если он должен быть уникальным на каждый запрос?
    Ответ написан
    2 комментария
  • Как развить алгоритмические навыки программирования?

    DevMan
    @DevMan
    нет никакого плана, только опыт.
    нельзя прочитать/посмотреть что-то и сразу просветиться.
    теория даст базу, но без практики эта база ничего не стоит и быстро забудется.
    прост решайте задачи по интересующей тематике, и всё придёт само собой.
    Ответ написан
    Комментировать
  • В каком стеке web технологий одновременно: высокий порог входа, высокие зарплаты и в целом не проблема найти удалёнку?

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

    Развивайтесь в сторону создания более сложных вещей - там и технологии поймутся.
    Более сложные - это всевозможные веб-приложения, забудьте о сайтах.
    А приложения могут быть уже какими угодно и с большим разбросом по сложности - может быть CRUD админка которую любой индус накидает, а может быть какая-нибудь замороченная система бизнес-аналитики, где кнопки в браузере - это только 10% от всего функционала, и это одна из причин почему ищут фуллстеков. Фуллстек в состоянии взять фичу и сделать её полностью, а не "накидать кнопок и ждать бекенд" или "сделать апишку и отдать фронту".
    Ответ написан
    14 комментариев
  • Как запустить из терминала x-приложение не входя в графическую систему?

    egor_nullptr
    @egor_nullptr Куратор тега Linux
    Ответ написан
    Комментировать
  • Вытащить информацию из файла и отправить в БД?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    при експлоде проверяйте каунт аррэя и если каунт мо тхен 1 тогда в бд, а елс пропускаем.
    Ответ написан
  • Разговоры о зарплате с руководителем?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Мало знать себе цену, нужно еще пользоваться спросом.

    Вы рассуждаете с точки зрения работника, а менеджер рассуждает с точки зрения менеджера, а компания ставит задачи с точки зрения компании.
    Естественно ЛЮБОЙ компании удобно платить меньше, если она может платить меньше. Отсюда и эти запреты про обсуждения зарплат между сотрудниками. Тут правда двоякое - если кто-то выбьет себе большую зарплату, а потом все захотят себе выбить большую зарплату - возможно бизнес, который ведет компания, не сможет оплатить всем сотрудникам высокую зарплату и сохранить свою прибыль на уровне - компания потеряет потенциал для развития и через какое-то время закроется вообще.

    Это нужно понимать, что любая компания существует благодаря определенному балансу, и поэтому каждый занимается своей карьерой и своей зарплатой сам.
    А если в компании есть налаженный регулярный механизм индексации - то это весьма неплохо в реалиях СНГ, где люди могут работать по 5-10 лет на ту же зарплату.

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

    bingo347
    @bingo347
    Crazy on performance...
    ОС чаще всего пишут на низкоуровневых языках, вроде C (Linux, FreeBSD), C++ (Windows), Rust (Redox). Иногда используют ассемблерные вставки.

    Игры (имеются в виду 3D игры) чаще всего пишут на C++, но так же возможно на C# (Unity), JS (Unity или что-то упрощающее работу с WebGL). Хотя могут быть и другие языки (например майнкрафт написан на JAVA, а старый добрый Doom - на C). Так же понадобится язык шейдеров для программирования видеокарты, например для OpenGL и WebGL таким языком является GLSL.

    Прикладной софт вообще пишется на чем угодно, выбор языка зависит от задачи. Но в некоторых сферах все же можно выделить лидеров:
    Энтерпрайз решения - Java EE, реже C#
    Десктопный софт под Windows - C# (реже другие языки .net платформы)
    Десктопный софт под MacOS - Swift
    Десктопный софт кросплатформенный - Java, Python, JS (Electron)
    Мобильный софт под Андроид - Kotlin, Java
    Мобильный софт под iOS - Swift
    Мобильный софт кросплатформенный - C# (Xamarin), JS (Cordova, ReactNative, etc.)
    Серверный софт - php, Python, Ruby, JS (node), Java, Go, Rust, ... вариантов много
    Браузерный софт - JS или то что компилится в JS (чаще TypeScript)
    Ответ написан
    11 комментариев
  • Как изменить файл .php через php?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Ничего туда нельзя вставить, потому что, скорее всего, по этому URL будет отдан результат выполнения файла, а не его содержимое.

    Но, на всякий случай, вот:
    file_get_contents()
    file_put_contents()
    Ответ написан
    2 комментария