Задать вопрос
  • Сфера подработки для сисадмина?

    Zoominger
    @Zoominger
    System Integrator
    а в последствии удаленно работать по ней (фриланс как вариант).

    Давайте сразу в Яндекс.Еду, не нужно удлинять понапрасну этот рельсовый путь.

    Подскажите, что реально изучить в короткие сроки где можно зарабатывать в последствии приличные деньги?

    Сейчас, штаны только подтянем. Ведь все жаждут посоветовать что-то конкуренту, палить годноту, чтобы он пришёл и демпинговал.

    Ну серьёзно, бросайте эти глупые мысли, развивайтесь, как админ, я ни за что не поверю, что с такими вопросами вы добились каких-то высот в этом.
    Ответ написан
    Комментировать
  • Как запустить массивную задачу на php?

    DevMan
    @DevMan
    все долгоиграющее должно запускаться в фоне, а не браузером/веб-сервером.
    Ответ написан
    Комментировать
  • Как пользоваться сервис контейнером в своих классах?

    mzcoding
    @mzcoding
    Web-Разработка
    Итак! Допустим у вас есть некая сущность для работы с платежами назовем ее Payment
    1. Создаем контракт и описываем (допустим) метод pay, отвечающий за (допустим) генерацию ссылки на оплату:
    namespace App\Contract;
    
    interface PaymentInterface
    {
       public function pay(): string;
    }

    2. Создаем сервис Payment и имплементим наш интерфейс + описываем метод pay и создаем конструктор еще, который (допустим) принимает некую ссылку на оплату (платежной системы) - Ссылку будем брать (допустим из конфига):
    namespace App\Service;
    
    use App\Contract\PaymentInterface;
    
    class Payment implements PaymentInterface
    {
        protected $paymentLink;
    
        public function __construct($paymentLink)
        {
            $this->paymentLink = $paymentLink;
        }
    
        public function pay(): string
        {
            return (string)$this->paymentLink;
        }
    }

    3. Создаем провайдер: php artisan make:provider PaymentProvider:
    namespace App\Providers;
    
    use App\Contract\PaymentInterface;
    use App\Service\Payment;
    use Illuminate\Support\ServiceProvider;
    
    class PaymentProvider extends ServiceProvider
    {
        /**
         * Register services.
         *
         * @return void
         */
        public function register()
        {
            $this->app->bind(PaymentInterface::class, function ($app) {
                return new Payment(config('app.payment_link'));
            });
        }
    
        /**
         * Bootstrap services.
         *
         * @return void
         */
        public function boot()
        {
            //
        }
    }

    4. Теперь надо зарегать наш провайдер в конфиге (config/app.php) - массив providers (в конец):
    App\Providers\PaymentProvider::class,

    5. Пропишем в config/app.php параметр payment_link:
    'payment_link' => 'https://money.yandex.ru’,

    6. Теперь создадим контроллер (или вызовем в существующем):
    namespace App\Http\Controllers;
    
    use App\Contract\PaymentInterface;
    
    class PaymentController
    {
        public function getPayment(PaymentInterface $payment)
        {
            dd($payment->pay());
        }
    
    }

    7. Готово )

    П.С: Обращаем внимание, что на вход принимаем интерфейс, а не реализацию
    П.П.С: Можно также вызывать в любом классе который зарегистрирован в контейнере.
    П.П.П.С: Можно юзать связывания без интерфейса (читаем в доке)

    Так-же можно вызвать ваш класс, через хелпер resolve (читаем в доке)

    Ссылка на доку: https://laravel.com/docs/5.8/container
    Ответ написан
    5 комментариев
  • Почему происходит затруднение с ЯП PHP?

    @ipokos
    Я почитал как нужно водить машину, посмотрел кучу гонок, но когда сажусь за руль, глохну и не получается ехать.
    Что делать?
    Ответ написан
    Комментировать
  • Можно ли хранить SQL запрос в переменной сессии PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это совершенно бессмысленно.

    Вообще, есть простое правило: не следует усложнять код на пустом месте.
    Любой код должен всегда решать кокретную, существующую проблему. "Я тут подумал" - это не проблема. Поэтому решать её не надо.
    Ответ написан
    Комментировать
  • Как работать командой над большим проектом?

    saboteur_kiev
    @saboteur_kiev Куратор тега Организация работы
    software engineer
    1. Договор - полюбому. Чтобы можно было прижучить.
    В нормальных команиях также секьюрити проводят регулярные таунхолы, особенно для новичков, где рассказывают о безопасности. И приводят пару примеров, как кто-то расшарил кусочек кода, как его засудили на много денег и добавили в черные списки всех компаний.
    Это для тех, кто по глупости может.

    2. Делите исходники на части. Автоматизируйте деплой так, чтобы разработчик это руками не делал и никуда не лазил - сделал коммит - CI сервер автоматом закачал все нужное из разных репозиториев и задеплоил. Надо нескольким разработчикам - сделайте несколько тестовых окружений, чтобы разработчик мог зайти в Jenkins или Teamcity, нажал одну кнопку и выбрал куда ему деплоить. Но своих логинов парлей у него не было.

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

    И это все равно не гарантия. Смиритесь =)
    Ответ написан
    1 комментарий
  • Редактирование сайта + git. Как правильно выстроить работу?

    Medik18
    @Medik18 Автор вопроса
    Решил свою проблему так:
    • На удаленном сайте делаю "git init"
    • Затем получаю через SSH "clone" копию на локальный компьютер
    • Дополнительно делаю "push" проекта на GITHUB (на всякий случай)
    • Работаю с сайтом используя SublimeText + SFTP (локальные правки сразу уходят на сайт)
    • Локально отслеживаю изменения через SublimeMerge
    • Когда понимаю что на сайте всё работает как нужно, на удаленном сервере фиксирую изменения в git
    • Локальные изменения удаляю, либо прячу через stash (при желании можно чистить "git reset --hard" + "git clean -f -d")
    • Получаю "pull" изменения с удаленного сервера, делаю push на GITHUB (на всякий случай)
    • Если делал stash - делаю stash pop, и, то что пришло через pull, идеально ложится на stash pop, т.к. это одно и тоже

    Чего я добился этим: делаю быстрые правки и имею возможность откатиться в случае ошибок.
    Я понимаю что мой метод идет вразрез логике и самой идеи GIT, но для меня, в настоящий момент, он подходит. Благодарю за ответы и советы.
    Ответ написан
    1 комментарий
  • Так где же все-таки настраивать: nginx.conf, conf.d, sites-available или sites-enabled?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    Как верно пояснил выше Алексей - так и делают обычно, чуть-чуть дополню (расширю его пояснения):
    1. nginx.conf - общие конфиги всего сервера и всех обслуживаемых сайтов под ним, там он заодно подключает всё, что лежит в site-enabled
    2. site-available - конфиги отдельных приложений, туда можно заткнуть один для вебдава, другой для вебсокетов, третий для сайта, четвёртый для другого сайта, а пятый вообще для php-fpm и т.д.
    3. sites-enabled - т.к. тут просто включённые сайты - сюда складываются симлинки из site-available, для того, чтобы быстро включить, переключить или отключить какой-то конфиг. Что-то вроде горячей замены.

    По-хорошему делается всё именно так.
    Ответ написан
    Комментировать
  • Как работать с выгоранием?

    pospelov
    @pospelov
    Руководитель веб-студии
    Не работать в выходные и вечерами.
    Не работать в компании, где не комфортно работать.
    Не работать в режиме аврала больше 20% всего времени.
    Отдыхать раз в пол года.
    Развивать навыки хотя бы 5 часов в неделю. Что бы увеличивать скилы, либо личное КПД.
    ВАЖНО - приберитесь в задачах. Должен быть один единый центр, задачник. Трелло, Тудуист, бумажки, не важно.

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

    KornevaViktoria
    @KornevaViktoria
    Frontend Developer
    Нужно найти продуктувою компанию (которая разрабатывает какой-либо сервис), пойти туда хотя бы на стажировку. Посмотреть как изнутри все устроено. Обычно в таких компаниях, хорошо организована система работы и в команде каждый занимается своим делом. Часто используется agile. Также в таких командах идет быстрый рост тебя как профессионала. Может это решит проблемы с выгоранием. Главное найти свое место и свою команду
    Ответ написан
    5 комментариев
  • Готовая админка для Laravel - расскажите пожалуйста о личном опыте использования - что выбрать и зачем?

    Среди админок каторые мне очень зашли

    1. SleepingOwlAdmin - есть много элементов и демо проект что очень помогло в разборе документации, также достаточно просто сделать как свой элемент так и полностью свою страницу

    2. Laravel Generator - не совсем админка, но мне прям очень зашло, люблю я генерацию кода через терминал делать, к примеру подход yii, где генерация через фронт мне не зашло, мож такой вариант и тебе понравиться

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


    Мне прям очень не зашел Voyager админка создает в бд кучу таблиц, позволяет генерировать код с админки это не совсем мне подходит, но много народу ставили ее на 1 место до выхода nova
    А так щупал очень много админок, если что спрашивай более конкретно
    Ответ написан
  • Когда в PHP использовать интерфейсы, а когда абстрактные классы?

    sainnr
    @sainnr
    Как пишут умные люди (Шилдт, Троелсен) в своих умных книжках, интерфейс определяет функциональные возможности, поведение — «что именно следует делать, но не как это делать» (Г.Шилдт, Полное руководство C#). В абстрактном классе «определяется лишь самая общая форма для всех его производных классов, а наполнение ее деталями предоставляется каждому из этих классов» (там же).

    Простой пример, в контексте графического редактора можно определить:
    Абстрактный класс — Figure (геометрическая фигура), от него могут быть образованы классы конкретных фигур — например, Rectangle, Circle и т.д.
    Интерфейс — Drawable (то, что можно нарисовать). Он может быть реализован как во всех классах конкретных фигур (Circle, Rectangle), так и в других классах, не образованных от абстрактного Figure.
    Ответ написан
    Комментировать
  • Курсы/книги/видео по администрированию веб серверов - какие порекомендуете?

    toxicmt
    @toxicmt
    кофаундер Хекслета
    Эта тема, в первую очередь, связана со знанием операционных систем. Читайте соответствующие книги

    Если говорить про конкретные инструменты и их использование, начните с автоматизации деплоя и развертывания инфраструктуры используя инструменты ansible и terraform. Далее переведите локальную разработку на docker-composer. Затем можно будет тащить докер в продакшен (используя в примитивном случае тот же ansible). Про докер можно почитать здесь https://guides.hexlet.io/docker/
    Ответ написан
    1 комментарий
  • Какие вопросы стоит задать разработчику онлайн магазина на WP Woocommerce что бы убедиться в его компетентности?

    greabock
    @greabock
    Могу
    Задать вопрос:
    "может ли он сделать качественный интернет-магазин который не будет тормозить и лагать на woocomerce".
    Если ответ "Да" - спец хреновый )
    Ответ написан
    4 комментария
  • 44 года можно ли еще стать востребованным специалистом в IT?

    Начал программировать лет 8 назад. В этом году мне будет 60.
    Работаю удаленно. Предложений работы больше, чем я могу взять.
    Не сразу, но научился зарабатывать достаточно. Ключевой момент: переход к удаленной работе вместо выполнения разовых заказов.
    Ответ написан
    13 комментариев
  • Как развиваться в программировании не привязываясь к языку?

    myjcom
    @myjcom
    Clean Code: A handbook of software craftsmanship / Чистый код: Создание, анализ и рефакторинг
    Год издания: 2013
    Автор: Robert Martin / Роберт Мартин
    ISBN: 978-5-496-00487-9

    The Clean Coder: A Code of Conduct for Professional Programmers / Идеальный программист. Как стать профессионалом разработки ПО
    Год издания: 2012
    Автор: Robert C. Martin / Роберт Мартин
    ISBN: 978-5-459-01044-2

    Алгоритмы. Справочник с примерами на C, C++, Java и Python
    Год издания: 2017
    Автор: Хайнеман Д., Поллис Г., Селков С.
    ISBN: 978-5-9908910-7-4

    Design Patterns. Elements of Reusable Object-Oriented Software/Приемы объектно-ориентированного проектирования. Паттерны проектирования
    Год издания: 2015
    Автор: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides/Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж
    ISBN: 978-5-496-00389-6

    Test-driven development by example / Экстремальное программирование. Разработка через тестирование
    Год издания: 2017
    Автор: Kent Beck / Кент Бек
    ISBN: 978-5-496-02570-6

    Грокаем Алгоритмы. Иллюстрированное пособие для программистов и любопытствущих
    Год издания: 2017
    Автор: Бхаргава А
    ISBN: 978-5-496-02541-6

    Алгоритмы. Теория и практическое применение
    Год издания: 2016
    Автор: Стивенс Род
    ISBN: 978-5-699-81729-0

    прочитать нужно все

    ну и на закуску
    C Unleashed / Искусство программирования на C. Фундаментальные алгоритмы, структуры данных и примеры приложений. Энциклопедия программиста
    Год: 2001
    Автор: Heathfield R., Kirby L. / Хэзфилд Р., Кирби Л.
    ISBN: 0-672-31896-2 / 966-7393-82-8
    Ответ написан
    9 комментариев
  • Книги по информационной архитектуре?

    dmitriylanets
    @dmitriylanets
    веб-разработчик
    Архитектура корпоративных программных приложений https://www.ozon.ru/context/detail/id/1616782/
    Ответ написан
    Комментировать
  • Как выбрать программиста с адекватной ценой за час?

    @cicatrix
    было бы большой ошибкой думать
    Знаете, это рынок.
    Представьте себе, не дай бог, у вас судебное разбирательство, и надо вам нанять адвоката. Один стоит 1000 р. в час, другой - 15000 р. в час. Как оценивать работу адвоката?

    Вообще, у программиста-фрилансера (как и у адвоката) должен быть опыт решения похожих задач в прошлом и лучше всего - рекомендательные письма / координаты предыдущих нанимателей, чтобы у них можно было поинтересоваться качеством его работы.
    Ответ написан
    25 комментариев
  • Javascript фреймворки - дань моде или быстрота и удобство?

    @devunion
    И я вставлю 5 копеек о пользе Vue. Несколько лет назад начинал изучать Angular. Пришел к выводу, что есть идеи интересные, но как-то все сделано через одно место. Плюнул. Продолжал использовать jQuery (надеюсь, что необходимость использования jQuery или подобных библиотек вопросов не вызывает. Оптимизировать производительность можно долго и эффективно уже потом, когда это реально понадобится. В большинстве случаев до оптимизации дело вообще не доходит). Потом посмотрел Vue. Понравилось. Стал использовать в различных проектах. Раньше начинал делать простые проекты на jQuery т.к. необходимости тащить фреймворк вроде бы как и нет. В дальнейшем оказывалось, что при развитии проекта jQuery уже не удовлетворял всем потребностям. Переписывал на Vue. Наверное, в будущем буду сразу все писать на Vue и не заморачиваться.

    Вывод: попробуйте, не пожалеете!
    Ответ написан
    Комментировать
  • Javascript фреймворки - дань моде или быстрота и удобство?

    @maxbublik
    JS фреймворки уже несколько лет - это будни фронтэнда, и это не мода, и это никуда не уйдет. Также как никуда не уйдет традиционная верстка. Они будут жить вместе. Четкую границу между веб-сайтами и веб-приложениями провести нельзя, но суть вопроса автора вопроса понятна.

    Конечно же, делать простой лендинг на чем-то типа Angular/React - это клиника. Хотя если нужны интерактивные блоки, очевидно лучше использовать Vue, чем городить что-то на jQuery. Vue как раз хорош тем, что его можно задействовать только для отдельных виджетов, а весь остальной сайт продолжай писать как тебе угодно.

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

    Короче, если вы верстаете но на JavaScript ничего сложней jQuery вы не умеете, то вы в заднице. И каждый год вы все глубже.
    Ответ написан
    Комментировать