• Как лечится кризис начинающего программиста?

    @Gems
    Что научиться писать программы, нужно их писать.

    Есть такое хорошее выражение прямо про ваш случай «чтобы что-то сделать, нужно что-то делать». Дарю!
    Ответ написан
    Комментировать
  • Как лечится кризис начинающего программиста?

    kumaxim
    @kumaxim
    Web-программист
    Господин начинающий, у Вас извращенный подход к программированию в целом.
    Программа - это способ более эффективно решить какую-то задачу... способ достижения какой-то заданной цели с меньшим количеством ресурсов.

    Возьмем, как пример, тот же бух.учет на предприятии. Как Вы думаете, почему 1С Бухгалтерия так широко распространилась в РФ и СНГ? Эта программа позволяет бухгалтеру в 2-3 клика мышки сформировать отчет для регулятора(ФНС, ПФР и т.д.), вместо того чтобы человеку сидеть руками искать платежные поручения, вычислять налоги и т.п. Софт просто подтягивает выписку из банка, анализирует ее и выдает готовую для печати бумажку, что экономит бухгалтеру сильно много времени. Расчет заплатанный налогов и отчеты в соц.фонды это вообще красота - 8 кликов мышкой и все готово :-)

    Что я описал выше? Это способ решения одной конкретной задачи с гораздо меньшим количеством ресурсов, в данном случае - времени. Эта программа экономит время на подготовку бумаг, на расчеты сумм налогов, снижает вероятность ошибки и т.д. Это ее основная ценность, которую несут ее создатели обществу

    И вот, далее Вы для себя определитесь, какая Ваша основная цель? Какой Ваш основной посыл обществу?

    Личной мой посыл - "Я помогаю людям экономить: время, деньги, нервы и т.д.".

    Как я это делаю?
    У меня сначала был маленький интернет-магазин по продаже катализаторов для бензина(в поиск "кондиционеры метала для а/м"). При соблюдении определенных условий, расход топлива на малометражках снижался от 20% до 45%
    Вторым моим проектам было небольшое мобильное приложение для отслеживания хода исполнительного производства в ФССП(для взыскательней, уже сдохло). Мне и моим знакомым(не юристы) это экономило достаточно много времени на ругань с приставами, чего они должны делать и т.д. Кто сталкивался с этой службой должен знать эффективность и оперативность их работы, особенно в регионах...
    Сейчас я пишу небольшой конструктор сайтов, который поможет одной дружественной мне веб-студии сильно оптимизировать процесс создания низкобюджетных сайтов визиток

    К чему я все здесь это пишу? Я пытаюсь донести до Вас, что нет Вам смысла учить программирование на какой бы то ни было языке ради самого программирования. Нет смысла Вам учить алгоритмы, структуры, паттерны и т.д. ради их самих.

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

    Если говорить о чисто практических инструментах(функции стандартной библиотеки, фреймворки и т.д.)... Лично я могу считать себя профессионалом в какой бы то ни было технологии, ни когда я прочитал 1-2 книги и/или написал 1,5 задачи оттуда же. С таким уровнем я не могу сказать что я знаю язык/технологию в принципе, просто знаком - да, но я ее не знаю. Считать себя профессионалом я могу после того как решу не менее сотни задач, используя эту технологию и написал не менее 1 млн строк кода, именно написал, а не сгенерировал rake/gii/artisan или чем-то там еще.

    Вам же я желаю не останавливаться, развивайтесь. Мастерство приходит с опытом.

    P.S.: от холиваров на тему 1С прошу всех воздержаться
    Ответ написан
    11 комментариев
  • Как сделать фиксированную колонку в Bootstrap?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    прописываю position: fixed то они начинают позиционироваться не относительно своего родителя, а относительно всего окна браузера, почему так?

    Потому что спецификация.
    https://webref.ru/css/position

    Вывод: не использовать position: fixed
    Использовать absolute и relative родителю.
    Ответ написан
    Комментировать
  • Стоит ли изучать Symfony?

    @djay
    Итак, обо всем по порядку:

    1. Дописать новую фичу можно в любой системе и в любом фрейморке (ZF/Laravel/SF/Cake/CI/Phalcon ... ), даже если все было спроектировано не правильно изначально. Единственно на это уйдет чуть больше времени и нервов.

    2. Симфони второй по востребованости в СНГ, после Yii - согласно hh и brainstorage. Остальное - ZF/Laravel. В Европе/США - наоборот, ZF2/Laravel, потом Symfony, а Yii вообще редко попадается.

    3. Да Ларавел работает быстрее и есть меньше памяти. Это потому в симфони очень много слоев абстракции. Но как правило, память дешевая и многие могут её себе позволить. То есть в основном никого не волнует какие-то 9-10 лишних МБ памяти.

    4. Симфони - не для слабаков. Его API гораздо сложнее всех остальных. Нужно уже знать и понимать DI контейнеры, принцип разделения концепций и аналогичное. Для работы с Yii/Laravel - знать этого не нужно, поэтому каждый второй школьник Yii/Laravel программист (образно говоря).

    5. Не встречал адекватных мануалов для новичков на русском языке, к сожалению. Могу посоветовать только англоязычные:

    Symfony2 Registration and Login
    Creating a blog in Symfony2

    Пройдя эти мануалы, уже сможешь писать приложения.

    6. В любом фрейворке, тебе нужно будет в основном только это:

    - Роутер / контроллеры
    - Компонент валидации форм
    - Слой над базой данных

    И все! Фремворк предоставляет только инструменты, не более того. Т.е фреймворк - это не цель, а средство.
    Ответ написан
    Комментировать
  • С чего начать изучение php7 новичку?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Дополню вариант от cheevauva

    Тк вряд ли будет ментор у вас, третий вариант точно не выбирайте -- я также через него прошел :)

    • Идите на Ютуб, распаковывайте серию видео "Создание блога на Symfony" или "Создание сайта на Yii2" и поглащайтесь, все что не понятно -- гуглите и задавайте вопросы...
    • Потом ищите "Как ставить nginx + php7 на debian: :)
    • Потом ищите "Хорошие прaктики Symfony", "Хорошие прaктики Yii2"


    Дальше разберетесь
    Ответ написан
    Комментировать
  • С чего начать изучение php7 новичку?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    Сообщение выше от verdex - это какой-то троллинг. Обе книги - полный шлак, который может быть полезным только совсем новичкам, которые только за комп сели (ну или выбрались из дремучих 2000х только что).

    Отвечая на ваш вопрос, и судя по перечисленному стеку и задачам - изучать дальше сам пых имеет мало смысла, всё же понимание как работает композер, зачем нужна слабая связанность, почему PSR - это тру-вей и проч. - это уже не ньюби. Список, в прнципе совершенно верный. Так что даже не зная как работают корутины в пыхе, или не подозревая о существовании его байткода vm - вполне можно жить, остальное с опытом придёт. Так что учитывая всё это, думаю стоит посмотреть в сторону книг:
    1) Макконнелла
    2) Эрика Эванса
    3) Ну и мб Gang of Four или что-то похожее, фундаментальное, вроде Мартина Фаулера

    P.S. Зендстра довольно унылый, хоть и вполне адекватная книга, пусть и старовата.
    Ответ написан
    1 комментарий
  • С чего начать изучение php7 новичку?

    @cheevauva
    Самый лучший вариант, нанять ментора, который будет помогать тебе в возникающих вопросах.
    Оптимальный вариант, начать разработку на известном фреймворке (который совместим с php7), попутно читая код этого фреймворка.
    Худший вариант (я выбрал этот, в начале своего пути), писать собственные CMS и фреймворки, которые ни кто не увидит. Но это очень опасный путь, так как ты можешь упереться в потолок собственного кругозора и ни кто тебе об этом не скажет. Еще минус этого пункта в том, что он занимает в разы больше времени, чем перечисленные выше.

    книгу Мэта Зендстры

    Не рекомендую, сложная книга, не научит тебя ООП. Самый лучший вариант, для изучение ООП - начать писать всё на объектах, без статических функций и с применением интерфейсов. Результат гарантирую.

    НИ В КОЕМ СЛУЧАЕ НЕ ИЗУЧАЙ PHP ПО КНИГАМ
    Ответ написан
    2 комментария
  • На какой современный PHP фреймворк перейти?

    @pocketsun Автор вопроса
    Насколько я понял Laravel базируется на symfony 2 ?
    Ответ написан
    1 комментарий
  • 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 комментариев
  • PSR-0 или PSR-4, и как правильно построить структуру проекта?

    27cm
    @27cm
    TODO: Написать статус
    Первый вопрос который меня интересует это PSR-0 или PSR-4. На сколько я понял по состоянию на 21 октября 2014 года PSR-0 был помечен как устаревший.

    PSR-4 не замена PSR-0, а дополнением к нему.
    github.com/php-fig/fig-standards/blob/master/accep...


    про PSR-3 я вообще как-то не нашел русскоязычной информации, словно такого стандарта нет

    Видать, не перевели. Читайте в оригинале:
    github.com/php-fig/fig-standards/blob/master/accep...


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

    Да, это пусть к PHP файлам проекта. Но index.php обычно выносят в отдельный каталог (например, /public), а все классы проекта хранятся, например, в /src (или /lib или ещё как угодно). В конфигурации веб-сервера запрещают отправлять запросы к любым файлам, не лежащим в /public, благодаря этому /public/index.php является единственной точкой входа для внешних запросов.


    ./vendor это папка назначение которой я не понимаю

    Это папка для сторонних библиотек, используемых в вашем проекте. Используется composer'ом. Внутрь лезть особо причин нет, composer сам решит как ему там всё разложить. Свои классы вы туда тоже не должны писать.


    в итоге честно говоря я запутался в том как правильно надо строить свои каталоги, какие папки обязательные какие нет, когда использовать src, когда lib, когда tests, почему в некоторых структурах приходится дважды указывать имя поставщика и имя пкета и т.д.

    src и lib - скажем так, синонимы. Кому как больше нравится. Главное, что внутри лежат сами PHP файлы проекта, следующие стандарту PSR-4. Лежат там только файлы, написанные авторами проекта. Поэтому нет смысла класть vendor внутрь src (или lib).
    test - каталог для тестов проекта.
    В папке vendor имя поставщика и имя проекта могут совпадать, вот они и дублируются.

    Так как вы изобретаете свой велосипед, то и структуру каталогов делайте свою, или посмотрите на популярные CMS/фреймворки, но везде будет по-разному. Joomla, WordPress, Yii, Zend Framework, Symfony.

    Я придерживаюсь такой структуры:
    /config                     Глобальные настройки проекта.
    /data                       Временные файлы. Например:
    /data/cache	            Файлы кеша.
    /data/logs	            Логи.
    /data/tmp	            Прочие временные файлы.
    /module                     Модули проекта. Например:
    /module/Backend	        
    /module/Backend/config      Настройки модуля.
    /module/Backend/src	    Файлы PHP модуля. Например:
    /module/Backend/src/Backend/Path/To/ExampleClass.php
    /module/Backend/test	    Unit-тесты модуля.
    /module/Backend/view	    Шаблоны модуля.
    /module/Frontend/...
    /public/index.php
    /public/css
    /public/font
    /public/img
    /public/js
    /vendor


    Возможно, я ошибаюсь, но самая главная ваша беда в том, что вы решили разрабатывать собственную CMS, не поработав с существующими, не выявив достоинства и недостатки их архитектур и структур каталогов.
    Ответ написан
    7 комментариев
  • Как реализовать подключение класса пхп?

    @cheevauva
    Если ты новичок, то читай это php.net/manual/ru/language.oop5.autoload.php

    В твоем случае, самым простым вариантом, будет что-то такое
    spl_autoload_register(function ($className) {
        $map = array(
            'modules\datebase\connection' => 'Путь до файла с этим классом'
        );
    
        if (isset($map[$className])) {
            require_once $map[$className];
        }
    });

    Оптимальным же вариантом будет объявление своего автозагрузчика классов на основе PSR-4 в композере.
    Ответ написан
    5 комментариев
  • Как сделать автозагрузку классов из разных папок?

    shindakioku
    @shindakioku
    Не сайтоклепатор
    Добро пожаловать в мир composer'a :)
    Ответ написан
    1 комментарий
  • Как сделать автозагрузку классов из разных папок?

    @D3lphi
    Да сколько можно велосипеды писать? Composer есть, я же уже говорил вам!

    Используйте стандарт автозагрузки psr-4. Для этого следует использовать пространства имен (namespace'ы).
    Таким образом, класс с полным именем App\Controllers\DefaultController (Где App\Controllers - неймспейс, а DefaultController - имя класса) должен лежать в директории app/controllers и иметь имя DefaultController.php.
    Ответ написан
  • Как справиться с недостатком сосредоточенности?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Нужно съезжать от родителей.
    Ответ написан
    1 комментарий
  • Как подключать классы в рантайме в PHP?

    Melkij
    @Melkij
    PostgreSQL DBA
    Раз они однотипные - то может и задачу они решают однотипную?
    Может, вам нужен паттерн factory и в контроллере и будет только use фабрики?
    Ответ написан
    Комментировать
  • Ребята где учить C# сейчас?

    Вот, интерактивный курс по C# https://ulearn.me/
    Ответ написан
    Комментировать
  • Как раскидать публичные ключи с помощью xargs, ssh-copy-id и sshpass?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    while read
    do
    	IP=`echo $REPLY|cut -d ";" -f 1`
    	PW=`echo $REPLY|cut -d ";" -f 2`
    	echo "sshpass -p ${PW} ssh-copy-id root@${IP}"
    done < list.txt


    Попробуйте так.
    Если echo работает верно, то просто поправьте ее на выполнение
    Ответ написан
    Комментировать
  • Что такое Процесс и Техника в контексте Software Testing?

    @meilmut
    Вопросы из Upwork во многом базируются на ISTQB Foundation системе сертификации по тестированию ПО. В этом случае я бы ответил:
    1) Тестирование согласно ISTQB - это в первую очередь процесс. Поэтому правильными вариантами будут Unit testing, Integration Testing, Functional testing.

    2) Техника тестирования. В ISTQB под техниками подразумеваются техники тест-дизайна для эффективного составления тест-кейсов, например, Decision Tables или Boundary Values. Вопрос, конечно не совсем корректен, но если следовать этой логике, скорее всего правильным ответом будет Test Case Development

    В целом, рекомендую прочитать материал по ISTQB Foundation Level, без них сложно будет сдать тест на Upwork. Особенно, когда дело коснется вопросов по Whitebox. Мало того, в отличие от многих сертификаций по той же джаве, ISTQB дает реальные знания. Я считаю, что это must have для каждого тестера.
    Ответ написан
    Комментировать
  • Зачем мне лучше использовать Vue.js в проектах, чем не использовать?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    1) jquery и vue.js совершенно разные вещи и решают они совершенно разные задачи. jquery создан для кросcбраузерной работы с DOM. Vue.js и подобные созданы для работы с данными.

    2) Не факт. Для создания модальных окон, лайтбоксов, слайдеров, вам может понадобиться там и jquery, т.к. аналоги jquery плагинов не всегда есть на нативном javascript. + Готовых компонентов для vue.js не так уж и много, по сравнению с react или angular. Но их кол-во растёт

    3) А что вам даёт jquery, кроме добавления нескольких плагинов? По сути, ничего такого vue вам не даст.

    4) Очень многое. Разделение всего и вся на компоненты. Которые можно переиспользовать в разных частях сайта не думая о дублировании стилей, js логики и т.п.

    5) Да во всех можно использовать, будь то блог или интернет магазин.

    6) Если проект с нуля, то можно использовать vue.js. НО!!! Для начала, вам, его нужно изучить и достаточно хорошо!!! А так же, скооперироваться со своей командой. Дизайнерами и серверными разработчиками.

    7) Лично я, пока не знаю его на достаточно хорошем уровне, но уже могу легко написать на нём блог и прикрутить node.js + express + mongodb для обработки данных на сервере. Бесконечная подгрузка постов, фильтрация данных без перезагрузки и триллион всего.

    Гуглите на youtube видосы по vue.js, лично вам, на русском, что бы понять, что это такое и для чего вообще используют подобные фреймворки. Изучите хорошенько javascript иначе не сможете писать на этом фреймворке.

    Я проходил курс тут. Он на английском, но достаточно понятный.

    P.S. jQuery можно использовать вместе с vue.js без всяких проблем
    Ответ написан
    7 комментариев
  • Как с помощью jquery найти tr в таблице по внутренней ссылки с классом и вставить дополнительные столбцы?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    $('.class_v').each(function () {
      $(this).closest('tr').append('<td>Foo</td>');
    })

    https://jsfiddle.net/alexey_m_ukolov/b0o11n90/
    Ответ написан
    Комментировать