• Что делать, если человек не платит за сайт?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    Не рекомендую ничего делать с сайтом. Как бы ни было жалко работу, своя репутация дороже - это на случай, если вы хотите навредить.
    Но:

    1. Вы можете попробовать найти заказчика, для которого написан сайт, написать ему письмо или связаться другим способом и разъяснить, что вся работа по сайту на самом деле была сделана не студией, а лично вами. Можете вкратце пояснить, что студия с вами не расплатилась, и если заказчику нужны будут доработки, то пусть он связывается с Вами напрямую, а не через студию, которая вас "кинула".

    2. Сайт смело можно добавлять в свое портфолио и искать другую работу.

    3. Деньги жалко, но это всего лишь деньги и всего лишь один из тысяч эпизодов этой жизни. Постарайтесь взять от ситуации больше позитива. Испортить репутацию нехорошей студии можно и позже, когда вы поймете, что никаких других вариантов нет, а вы уже нашли другую работу и там вас оценили.
    Ответ написан
    1 комментарий
  • Возможно ли изучить PHP-фреймворк параллельно разрабатывая на нём проект?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Возможно ли изучить PHP-фреймворк параллельно разрабатывая на нём проект?
    Честно говоря, не представляю, как ещё по другому можно изучать фреймворк, в т.ч. PHP.

    плюс ко всему проект должен быть приспособлен к highload.
    Тогда с выбором фреймворка, нужно быть поосторожнее. "Не все фломастеры одинаково вкусные".

    микросервисы, которые обходились без больших фреймворков даже при основательных нагрузках
    Чистый PHP-код, работает быстрее чем любой фреймворк. Я имею в виду, грамотно написанный PHP-код, т.к. в нем отсутствует "лишняя" логика.

    Хочу использовать для разработки фреймворк Yii2. В чём вопрос: смогу ли я параллельно его изучая приступить к разработке
    Скорее всего да, хотя это очень индивидуально.

    и так, чтобы потом 10 раз не пришлось переделывать?
    Скорее всего нет, хотя это тоже очень индивидуально.

    Может, изучить какой-нибудь микрофреймворк?
    Возможно. Зависит от Ваших задач и целей.

    Понятное дело, что без правильно настроенного содержимого моей черепной коробки даже с 10-ти летним опытом в Yii не получится, но всё же, поделитесь опытом и дайте совет :)
    Ну я обычно с новичками, изучение с CodeIgniter'а начинаю, т.к. он не изобилует всеми новыми фишками и плюшками, и в виду отсутствия таких, казалось бы, ставшими уже стандартом вещей, как например "авторизация" - заставляет их включать голову, а не истерично рыться в поисковике на тему "как включить готовую авторизацию", но мне не редко приходиться работать с людьми, которые не очень хорошо разбираются в PHP, Фреймворках и программировании в целом или веб-разработке в целом. Не многие сходу знают, что такое MVC и так далее, а пытаться объяснить человеку, что такое класс и тут же нагружать его "пространствами имён" или "внедрением зависимостей" (и всем остальным) - не очень продуктивно (как показывает практика). Когда у обучаемого 10 лет опыта за спиной, можно сразу с Laravel/Symfony начинать, как минимум, что такое MVC и всё остальное - объяснять редко приходится, скорее, приходится показывать, "как это сделать тут", а "как надо делать вообще" - обучаемый уже и без меня отлично знает.

    P.S. Если Вы напишите больше конкретики, что знаете, что не знаете, что в Вашем понимании HiLoad, какие ресурсы у Вас для этого есть, какие примерно БД и какая примерно задача, какие фреймворки использовали раньше и использовали ли какие-то вообще, на каких языках, какие проекты (теоретически) разрабатывали ранее и т.д. будет гораздо проще дать Вам какую-то более конкретную рекомендацию.
    Ответ написан
    2 комментария
  • Как устроиться на работу бывшему ИП?

    @Oblomingo
    Я в 30 начал программировать на C#. Просто так, как хобби.
    Помимо основной работы (в энергетике), сдал Майкрософтский экзамен и устроился джуниором в одну контору.

    За 4 года сменил две работы, сдал еще около 10-ка экзаменов, прочитал кучу книг по архитектуре. Теперь занимаюсь тем, что пишем энтерпрайз системы для крупных иностранных заказчиков. Месяц назад мне предложили перейти на позицию Senior.

    Я к тому, что никогда не поздно начать, что то новое.
    Ответ написан
    4 комментария
  • Какое направление лучше выбрать при изучении c#?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    1) С# или Visual C#?

    Где вы прочитали это? В природе бывает лишь C# и он описывается стандартами. Visual %LANG_NAME% обычно Microsoft называет свои версии Visual Studio, заточенные под конкретную технологию. Но язык все равно С#.

    2) Что такое платформа .NET Framework?

    Это как бы...фреймворк) То есть вся та среда, в которой исполняется ваша программа, включая виртуальную машину (CLI) и библиотеку стандартных классов (FCL). То есть скомпилировав свое приложение, вам его нужно этой среде передать и она гарантирует наличие всего необходимого, чтобы приложение выполнилось. Пишет о нем отлично местный гуру - Джефри Рихтер в "CLR via C#". Странно было бы, если учебники, скажем, по JavaScript вплотную рассматривали бы V8, правда?)

    3) Недавно прочитал про .NET CORE.

    Это альтернативная реализация .NET Framework. Оно иначе работает и FCL там построена иначе. Но C# там точно такой же, как и на "большом" фреймворке, так что начав учить его вы ничего не потеряете. А уж MS позаботится, чтобы их сопутствующие технологии тоже не сильно отличались (ASP.NET MVC от ASP.NET Core, EntityFramework от EntityFramework Core.

    Вывод: если вы только начинаете, то вам без разницы, хоть под Core, хоть под .NET Framework, язык там один и тот же, консольные приложения такие же. Просто некоторые классы переехали в отдельные сборки. С нуля же лезть в фреймворки (ASP.NET MVC/Core, WPF, EntityFramework (без знания ADO.NET)) - рановато, освойтесь с самим языком, базовыми библиотеками.
    Ответ написан
    2 комментария
  • Какое направление лучше выбрать при изучении c#?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    "Сейчас я - эникейщик программист разрабатывающий что угодно из чего угодно и как угодно )"

    Если вы программист - устройтесь программистом в крупную компанию.
    Если вы не программист, учитесь пользоваться поиском, например поиск вакансий и читайте требования под ними. Учите так, чтобы могли сказать "да, я соответствую этим требованиям" и идите на интервью.

    Я вижу в крупных компаниях огромное количество людей, которые знают гораздо меньше, чем хотелось бы. При минимальных имеющихся навыках, наверное дело не столько в том, что учить, а в том чтобы целенаправленнее заняться поиском работы.
    Ответ написан
    2 комментария
  • Какое направление лучше выбрать при изучении c#?

    @d-stream
    Готовые решения - не подаю, но...
    Если вкратце, то практически любой язык программирования как таковой осваивается за несколько дней. А вот все что вокруг - те же фреймворки - их только общий обзор может занять месяцы.
    Соответственно когда говорят просто "c#" или "visual c#" - то скорее подразумевают опыт относительно фреймворков. Если же говорят о чем-то специфичном, то там во главе угла именно специфичность, а язык указывается вторично

    И да, найти хорошую работу и зарабатывать хорошие деньги - это лучше не программировать, а жениться на дочке миллиардера =)
    Ответ написан
    2 комментария
  • Как связанны backend+RESTful API+Базы данных?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Как связанны backend+RESTful API+Базы данных?

    Самый просто пример - это браузер, в роли клиента. И [*любой_язык*] в роли REST-сервера. Сервер при этом, может взаимодействовать с базой данных, для генерации ответов на запросы клиента.

    Но приложения на андроид пишутся на Java.
    Не только на Java... Но, это не имеет значения как такового, на чем они пишутся на клиенте.

    Получается, что если за основу сайта я взял Django, то и на мобильном приложении будет основа Django
    На мобильном приложении, с вероятностью 99% будет клиент. На чем он будет написан - значения не имеет особого, но Django в андроиде - очень вряд ли.

    Какую роль играет при этом сервер?
    Роль сервера, судя по всему.

    И да, последний вопрос: какие темы/аспекты нужно выучить, чтоб разбираться в этом?
    Конкретно про REST - я привёл Вам ссылку выше. Так же рекомендую ознакомиться со спецификацией на HTTP-протокол, полезно и в качестве примера для Вашего вопроса и вообще в целом.
    Ответ написан
    Комментировать
  • Шаблонизаторы ещё актуальны?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Шаблонизаторы типа Smarty, Twig в 2017 востребованы, если с ними раньше не работал стоит ли смотреть, изучать что бы повысить ценность свою на рынке труда?

    Smarty - вряд ли.
    Twig - вполне себе актуален, я Вам даже больше скажу, он уже интегрирован "из коробки" в довольно популярную CMS по имени Drupal 8 (т.к. он сделан на базе Symfony) и собственно, в не менее популярный фреймворк под названием Symfony. И, Twig отлично встраивается в очень популярный фреймворк (я имею в виду, в ракурсе PHP-*) под названием Laravel, который в свою очередь так же имеет свой весьма неплохой шаблонизатор, под названием Blade.

    Среди прочего, вариация Twig'а есть даже для JS (Node.JS), в качестве альтернативы таким штукам как Pug/Jade например. *По информации одного из наших коллег, такие шаблоны (в JS-вариации интерпретатора) отлично переносятся потом в оригинальный Twig/PHP (имеют хорошую совместимость/переносимость).
    *Сам не проверял, но, доверяю словам автора.

    Или их нативный php всё же их вытеснил
    Из тех шаблонизаторов, что я могу вспомнить, по моему, все "компилируются" (преобразуются) в нативный для системы код (даже Smarty), т.е. если мы говорим про PHP - то соотв. в PHP-код. Парсится шаблон в код не часто и разница в производительности довольно не значительная, в 99% случаев - ей можно принебречь.

    или все ушли во Фронтенд шаблонизаторы?

    У них обычно немного разные категории задач. Если Вы говорите про шаблонизаторы аля Pug/Jade - то, что из них выходит, в конечный не-JS код, интегрируется плохо. То есть, смысл от этого шаблонизатора только для того, кто делает вёрстку, практической пользы при переносе на PHP-движок (и другие не JS-движки) от него обычно нет, либо очень мало.

    Если говорить о чисто клиентских реализациях - генерировать данные на клиенте, в таком объёме, по моему, не кошерно в подавляющем большинстве случаев, с учётом того, что сервер может кэшировать страницу целиком и выдавать сразу готовую (Varnish, например, это если говорить о необходимости высокой производительности), а какой-нибудь полу-мёртвый смартфон, бедолаги, который зайдет на подобный сайт - лопнет от чрезмерного изобилия JS-кода.
    Ответ написан
    Комментировать
  • Курсы\стажировка для java программиста?

    @evgeniy_lm
    Начнем с того, что любые курсы это не более чем один из множества способов "честного отъема денег у населения". В реале курсы не дают ни каких знаний и работодатели это прекрасно понимают. Начни с того, что приложи свои знания к тому чем ты занимаешься, если это возможно. Если ты работаешь не в конторе, а на стройке или сантехником сделать это будет проблематично, но тоже можно, поговори со своим мастером может ему чего надо запрограммировать по работе. Иначе ищи подработку на фрилас сервисах.
    Если ты не работаешь походи по конторам предложи свои услуги, можно даже бесплатно, но при этом не подписывай ни каких контрактов и соглашений тогда за тобой сохраняется юридическое право на все что ты сделешь
    Ответ написан
  • Как лучше реализовывать actions в контроллерах фреймворков или widgets?

    rpsv
    @rpsv
    делай либо хорошо, либо никак
    Виджеты - просто выводят данные, которые им кинул контроллер. По своей сути виджеты - это представления (MVC). То есть в действии (action) контроллере, вы только подготавливаете данные (model) для представления.

    Если говорить конкретно про вашу задачу и немного ООП: вам нужно реализовать 2 базовых виджета:
    - список новостей - принимает на вход DataProvider с новостями
    - список комментариев - принимает на вход DataProvider с комментариями

    А затем наследоваться от виджета "список новостей" и сделать еще парочку:
    - список топовых новостей
    - список архивных новостей

    Код будет выглядеть примерно так (абстрактно):
    /*
    список новостей
    */
    class ListNews extends ListView {}
    
    /*
    список топовых новостей
    */
    class ListTopNews extends ListNews
    {
        public function init()
        {
            // создаете провайдер с топовыми новостями
            $this->dataProvider = new ActiveDataProvider(...);
            parent::init();
        }
    }


    Ну и так далее по аналогии. Таким образов ваши новости (любые) буду одинаково выглядеть (ну с учетом одинакового представления), и вы сможете легко плодить нужные вам типы списков новостей.

    Вам просто нужно понять, что представления (view) могут (а точнее должны), напрямую брать данные из модели (model). Если говорить про Yii, контроллер в данном случае просто передает данные в представление (что на самом деле слегка нарушает MVC).
    Ответ написан
    Комментировать
  • В чем разница императивного и декларативного подхода в javascript? Это процедурный и ООП стили?

    @pikkvile
    developer
    Моё понимание такое.
    Декларативное программирование - это когда в коде описано что должно получиться, а императивное - когда написано как это сделать. Т.е. в первом случае мы совершенно не интересуемся, каким именно образом машина сделает работу, какие инструкции в каком порядке выполнятся и так далее, мы просто объясняем ей, что хотим увидеть в результате. Примеры декларативных языков - html, css, sql, конфиг nginx. Ещё тут стоит упомянуть функциональные языки (lisp, haskell), программы на них тоже, как правило, являются описанием (декларацией) того "что должно получиться". Ну, короче говоря, мы говорим компьютеру: вот смотри, мне надо чтобы было так, а как ты это сделаешь, мне не интересно. Аналогия такая: у меня есть чертёж бани, я даю его бригаде строителей и уезжаю. Как именно они там будут таскать брёвна, пилить доски и прочее - я не в курсе.
    Программируя императивно, мы описываем конкретные шаги, действия и точный порядок, в котором их нужно исполнять. Напрямую руководим процессом, непосредственно отдаём приказания. Примеров масса, большинство популярных языков императивны, в том числе и javascript. Ты пишешь: вот, сделай-ка переменную myVar, потом запиши туда число 5, повторяй это до тех пор, пока что-то не случится... и так далее. Возвращаясь к примеру с баней, ты теперь - начальник бригады, именно говоришь какое бревно куда класть.
    Что касается процедурного и объектно ориентированного стилей, это немного о другом. Я бы сказал, что это два разных способа писать императивные программы. В процедурном случае мы организуем код, наши команды (приказы машине) в виде процедур. Процедура - набор команд. Это довольно простой способ организации кода и исторически более ранний. ООП - это чуть более сложный подход к организации кода, когда мы группируем инструкции и данные, которыми они манипулируют, вместе. Объект - это состояние (данные) плюс поведение (набор методов). Но это уже немного другая история.
    Ответ написан
    2 комментария
  • Передача данных из контроллера в шаблон (layout). Как грамотно реализовать в yii2?

    @melnikov_m
    Можно обернуть эту кастомную логику в виджет и тогда в шаблоне он будет подключаться одной строкой.
    Ответ написан
    Комментировать
  • Как оформить произвольный класс в Yii2?

    Decadal
    @Decadal
    MVC - архитектура, которая строится при помощи связки модель-вьюха-контроллер. Но это не значит, что любой класс, который вы захотите создать, должен быть либо вьюхой, либо контроллером, либо моделью. Нет, смотрите по назначению вашего класса - в Yii2 существуют хелперы, которые просто созданы в папке helpers (можете создать свою - frontend/helpers, почему бы и нет?). И вызываются примерно так: ArrayHelper::getValue($array, 'foo.bar.name');
    Возможно, ваш класс лучше оформить как сервис - тогда почитайте про сервис-локатор. Читайте документацию, смотрите, как работает сам Yii2 и черпайте решения из него же.
    Где именно создавать классы? Решайте сами. Если работаете с advanced-шаблоном, можете создать в common папку components и запилить там свои классы. Не забудьте для них указать namespace common\components; и тогда вы сможете подключать их так:
    use common\components\MyClassName;
    //...
    $api = new MyClassName($someConfig);
    Ответ написан
    3 комментария
  • Как написать ссылку?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    frontend и backend отдельные app. И url manager одного app не подозревает о существовании второго. Поэтому нужно в конфиге frontend делать еще один urlManager, который будет знать о backend. И использовать его при формировании ссылки.
    Например:
    //это стандарный 
            'urlManager' => [
                'class' => 'yii\web\urlManager',
                'enablePrettyUrl' => true,
                'showScriptName' => false,
                'rules' => [],
            ],
    //это второй 
            'urlManagerBack' => [
                'class' => 'yii\web\urlManager',
                'baseUrl' => 'http://mybackenddomain.com',
                'enablePrettyUrl' => true,
                'showScriptName' => false,
                'rules' => require(__DIR__ . '/../../backend/config/routes.php'), //тут путь к файлу с rules для backend
            ],

    А ссылку формировать так:
    Yii::$app->urlManagerBack->createAbsoluteUrl('/'); //ссылка на главную
    Yii::$app->urlManagerBack->createUrl(['site/about']); //Ваш пример
    Ответ написан
  • Как получать геокодирование на одном языке?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    использовать (получать) только координаты, цифры не зависят от языка, а потом использовать их для получения названий через тот же google maps api:
    https://developers.google.com/places/javascript/

    или разобрать js и добавить в него локализацию:
    https://developers.google.com/maps/documentation/j...
    Ответ написан
    Комментировать
  • Как скрыть поля от определеных пользователей GridView?

    qonand
    @qonand
    Software Engineer
    Если я правильно понял задачу, то у Вас есть таблица в которой есть название поля (key_feild) и его значение (value), Вам соответственно для пользователей у которых нет разрешения canViewsSite нужно скрыть данные с key_field = 'site'

    Тогда непонятно зачем это делать на уровне GridView если можно просто выбрать данные по соответствующим условиям из БД. Например так:
    MyModel::find()->where(['not' in, 'key_field', 'site']);
    Ответ написан
    3 комментария
  • Связи баз данный в Yii2?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Связи в yii2 и в базе живут отдельной жизнью. Так что - ДА, можно в базе не указывать. На работу связей в yii это не повлияет.
    Однако стоит помнить, что связи в yii и в базе работают по разному - не удаляют связанные данные и т.д. Это просто связь для получения связанных данных.
    Ответ написан
    Комментировать
  • Как для админа выводить свои блоки?

    slo_nik
    @slo_nik Куратор тега Yii
    Добрый день.
    Никак не реализовать.
    Сделайте отдельно контроллеры и представления для пользователей и администраторов.
    Доступ закройте на уровне контроллеров.
    Подробней здесь.
    Ответ написан
    3 комментария
  • Как передать значение из шаблона в модель через форму?

    clojurerabbit
    @clojurerabbit
    Это, конечно, не совсем то, чего вы спрашиваете, но я бы не стал сохранять имя в hidden, а просто сделал вот так:
    ...
    if form.is_valid():
        comment = form.save(commit=False)
        comment.user = request.user
        comment.save()
    ...
    Ответ написан
    1 комментарий
  • Есть ли готовые решения на Yii2 авторизация под пользователем?

    @Quieteroks
    php программист
    По хорошему необходимо разделить на два приложения. В Yii2 даже advanced шаблон под данную архитектуру настроен. Тогда у вас вопроса с auth_key не возникнет, при переходе в разные приложения.

    Сделать авторизацию за пользователя легко, просто передать модель User в функцию Yii::$app->user->login($user, 0); Модель Вы можете получить по id в админке. Вопрос только в том, что бы авторизоваться в пользовательском разделе, а не в админке.

    Расширения? Я искренне надеюсь, что такое никто не делает. Поскольку это огромная дыра в безопасности Вашего сайта. Все, что Вам нужно, вы должны вынести в админку, а не авторизовать админа под пользователем. Особенно если у Вас имеются приватные данные или имеете отношение с денежными средствами.
    Ответ написан
    7 комментариев