Ответы пользователя по тегу Программирование
  • Как практиковаться в программировании?

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

    Я начал изучать программирование лет двадцать назад, поэтому мой опыт может показаться странным, но все же. В моем распоряжении был компьютер на 386 процессоре и монохромный монитор с 4 градациями цвета (белый, серый, темный и черный). Конечно я видел и цветные мониторы и 95 винду на них. Мне тоже хотелось окошечки, графический интерфейс и все такое прочее. Хочется - сделаем. Книжки в зубы (в библиотеке O_o), редкие походы в компьютерные клубы, за инфой из интернета (сколько поместится на дискету?) - и вперед, пилить оконный менеджер под ДОС на турбопаскале.
    Конечно, свою винду я не написал =) Но зато паскаль выучил, объектное программирование, детально разобрался как работает компьютер и операционная система, что такое резидентные программы в досе.
    А потом купил нормальный комп =)

    К чему я это всё? А к тому, что если у тебя есть желание научится программировать, ты возьмешь и научишься, даже на калькуляторе.
    Ответ написан
    1 комментарий
  • Шаблонный код: Чем можно удобно генерировать код для автоматизации сборки по шаблону?

    delphinpro
    @delphinpro
    frontend developer
    Такая штука есть. https://habr.com/ru/articles/246349/
    Генератор шаблонов (скаффолдинг). Есть куча готовых, можно создавать свои.
    Ответ написан
    2 комментария
  • Длинные имена и как с этим бороться?

    delphinpro
    @delphinpro
    frontend developer
    А причём здесь web-разработка?

    Вы о говорите о различных инструментах, типа npm composer и т.п.?

    Тут всё просто. Во-первых, профиль в винде необходимо переименовать, если он кириллический.
    Во-вторых, забываем про все виртуальные виндовые папки, тип Рабочий стол, Мои документы и т.п. Лучше покупаем отдельный диск для разработки. Ну можно и "С" использовать конечно =), однако, я никогда не храню данные на системном диске. Привычка с лохматых времен, когда винда падала чуть ли не ежемесячно. D:\dev, или С:\dev, и никаких проблем.
    Вспомогательные инструменты ставим в корень диска
    c:\composer
    c:\git
    c:\nodejs
    c:\python2

    Не забываем поправить системный PATH, если нужно.
    Ответ написан
  • Какие книги по программированию must-have?

    delphinpro
    @delphinpro
    frontend developer
    Не буду оригинален, эти книги у всех на слуху (и у меня на полке =).

    Макконнелл: Совершенный код
    Кнут: Искусство программирования
    Роберт Мартин: Чистый код. Создание, анализ и рефакторинг
    Гамма, Влисидес, Хелм, Джонсон (также известные как "Банда четырех"): Приемы объектно-ориентированного проектирования. Паттерны
    Фаулер: Рефакторинг. Улучшение существующего кода
    Ответ написан
    1 комментарий
  • Что делать со старыми кусками кода в проекте?

    delphinpro
    @delphinpro
    frontend developer
    Заметил такую вещь, что много оставляю за собой кода, на всякий случай.


    Человек, начни использовать систему контроля версий, не страдай фигнёй =)
    Ответ написан
    Комментировать
  • Как добавить папку назначения при скачивании в JavaScript?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    var fname=url.replace(/.+\//,"");
    fname = 'd:\\path\\to\\file\\' + fname;


    Лучше бы поставили wget для винды
    Потом будет просто
    wget -P d:\path http://site.com/file.rar
    Ответ написан
    1 комментарий
  • Почему сейчас открывается так много школ по программированию?

    delphinpro
    @delphinpro
    frontend developer
    Тут все просто - это относительно простой способ срубить бабла с населения.
    Люди начитаются историй успеха в интернетах про всяких там цукербергов и дуровых и толпами валят в эти школы.
    Ответ написан
    Комментировать
  • Как в композерский автозагрузчик добавить свой найспайс?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Все что лежит в vendor, должно загружаться самим композером, и он сам должен знать что и как написать (это описано в composer.json вендорного пакета). Вы лишь описываете в своем composer.json, какой пакет нужно подключить:
    {
      "require": {
        "slim/slim": "2.*",
        "twig/twig": "~1.18"
      }
    }


    Неймспейсы вашего проекта описываются в секции "autoload":
    {
      "autoload": {
        "psr-4": {
          "MyName\\MyProject\\": "application"
        }
      }
    }

    Такая запись указывает корневой (не знаю правильного термина) неймспейс для определенной папки. В данном случае в папке %PROJECT__ROOT%/application/ будут располагаться файлы с нейспейсами, начинающимися с MyName\MyProject\
    Здесь я подробнее писал.
    Ответ написан
    Комментировать
  • PSR-0 или PSR-4, и как правильно построить структуру проекта?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    /path/to/project/ это путь к проекту и данный путь нигде не фигурирует, это та директория из которой запускается основной index.php

    Нет. Этот корневая директория проекта. Из нее запускается композер. В ней же обычно лежит DOCUMENT_ROOT каталог, в котором уже и находится точка входа index.php. Также здесь лежат директории vendor (для сторонних пакетов) какой нибудь application/ для ваших файлов.

    Давайте попробую объяснить на примере.

    Пусть будет такая структура, например.

    60926735302a7422195552.png

    в vendor - вам ничего самому писать не нужно. Этот папка для композера.
    public_html - в ней только index.php и все ваши css, images, js. Это папка на которую указывает DOCUMENT__ROOT в настройках домена вашего сервера. Только эти файлы доступны "по интернету".
    application - здесь все ваши самописные php файлы.
    (На остальные каталоги не обращаем внимания, в корне проекта можно располагать все что вам удобно, это не будет доступно из web)

    Под такую структуру написан подобный composer.sjon
    {
      "require": {
        "php": ">=5.5.9",
        "slim/slim": "2.*",
        "twig/twig": "~1.18",
        "slim/views": "^0.1.3",
        "robmorgan/phinx": "^0.4.4",
        "illuminate/database": "^5.1"
      },
      "minimum-stability": "stable",
      "autoload": {
        "psr-4": {
          "MyName\\MyProject\\": "application"
        }
      }
    }

    Тут вроде бы все просто. В require перечислены используемые пакеты. Поясню только autoload. Автозагрузка по стандарту PSR-4. Указано пространство имен ваших файлов и папка в которой они лежат.
    Если ваш класс MyClass лежит в папке application - то у него должно быть пространство имен \MyName\MyProject (полное имя класса получается \MyName\MyProject\MyClass). Если ваш класс MyController лежит в папке application/Mvc/Controllers, то, соответственно \MyName\MyProject\Mvc\Controllers\MyController.

    При этом вам не нужно заморачиваться и писать автозагрузчик. Просто выполните команду php composer.phar install (или php composer.phar dumpautoload для пересборки аавтозагрузчика) и подключите файл автозагрузчика в index.php
    include '../vendor/autoload.php';

    Не использовать композер не имеет смысла, т.к. это очень просто. Просто скачайте файл https://getcomposer.org/composer.phar в корень проекта и пользуйтесь (см выше).
    Ответ написан
    5 комментариев