[Ответить в тред] Ответить в тред

Check this out!

<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
93 | 18 | 37

Аноним 11/11/18 Вск 17:02:59  186392160  
image.png (554Кб, 650x421)
image.png (2124Кб, 1622x768)
image.png (1182Кб, 1920x800)
Вкатываемся в пхп 100к/сек
Итак, ублюдки, вы достаточно ныли о том что пограмирование это сложно. Сегодня я написал для вас УЛЬТИМЕЙТ ГАЙД.

Поехали.

Недавно у меня состоялся разговор с одной из крупных московских контор с офисом в центре, которые ищут себе пхп-макаку. Зп начинается от 100к.
Они прислали мне тестовое, оно достаточно простое. Я еще не решил буду к ним вкатываться или нет, скорее всего нет, но тестовое решил сделать по-приколу и написать такой наглядный гайд.

Итак, текст тестового задания:

Используя фреймворк Symfony 3+ разработать web-приложение содержащее два типа страниц (два роута).

1. route / . На нем нужно вывести список новостей.
2. route /news/{slug}/ - страница новости.

Новость состоит из заголовка, текста, и даты.
Новости можно хранить в любом хранилище (SQLlite, например). Можно использовать Doctrine.

В приложении должно быть два контроллера, по одному на роут.
* Приложение должно иметь консольную команду для добавления новых новостей в хранилище.

Готовое приложение нужно положить в github (или любое другое бесплатное хранилеще git репозиториев).

Аноним 11/11/18 Вск 17:04:25  186392241
Приступим. Я работаю под виндой и использую OpenServer.
Создаём проект на симфони 3.4
Для этого скачиваем инсталлер симфони командой
php -r "file_put_contents('symfony', file_get_contents('https://symfony.com/installer'));"
Я его поместил в папку domains опенсервера, там же я его буду вызывать, чтобы он скачивал и создавал папку с проектом именно здесь.
Открываем терминал и создаём новый проект
symfony new my_project 3.4

Ждем пока скачаются все файлы. Когда скачались, создаём новый домен в панели управления опенсервера, корневая папка для домена - папка web в проекте.
При переходе на домен должна показывать страница с текстом "Welcome to Symfony". Если всё сделали как я описал, вы её увидите.

Теперь открываем IDE (я использую PhpStorm), создаём новый проект. Нужно выполнить действия по первичной настройке нашего приложения.
Нас интересует файл app/config/parameters.yml
Тут нужно заполнить логин/пароль для доступа в бд и имя бд. У меня всё принципе по умолчанию стоят root без пароля и имя бд такое как уже в конфиге, поэтому я ничего не правлю.
Аноним 11/11/18 Вск 17:05:35  186392303
4.png (77Кб, 1920x1080)
Можно приступать непосредственно к разработке. По условиям задачи у нас должно быть два роута, один из них уже есть по дефолту в симфони и обрабатывается от контроллером DefaultController.
Если мы зайдем в src/AppBundle/Controller/DefaultController.php то увидим там класс который содержит метод indexAction, внутри которого вызывается метод render и передаётся имя вьюшки первым аргументом и массив с переменными вторым.

В качестве шпаргалки мы будем использовать официальную документацию фреймворка. Открываем https://symfony.com/doc/3.4/page_creation.html

Будем идти по тестовому по порядку. Сначала создадим еще контроллер и роут, потом создадим сущности, а потом научим контроллер доставать сущности и рендерить их во вьюшку. Это в принципе всё что нужно.

Итак, контроллер.
Шпаргалка - https://symfony.com/doc/3.4/controller.html

В папке src/AppBundle/Controller создаём новый файл ArticleController.php
В нем должен класс с таким же названием как у файла, который входит в неймспейс AppBundle\Controller (если интересно почему именно так, гуглим про psr-4)
Директивы use мы используем чтобы сделать доступными классы вне нашего неймспейса. Наш класс расширяет класс Controller ядра сифмони.
Метод, он же в данном случае "экшен", будет только один - showAction, он будет соответстовать роуту /news/{slug}, и будет показывать статью с айдишником который передан в slug
Роуты в сифмони можно определять несколькими путями, самый простой и используемый по дефолту это аннотации. С помощью аннотации определяем роут перед объявления экшена в классе.
Мы также добавляем параметр requirements, где с помощью регулярного выражения указываем что slug должен быть числом.
Хорошо, оставим метод пока пустым. Теперь, если передейдем в браузере по роуту /news/1, то нам выдаст страницу с ошибкой 404.
В симфони есть удобный профайлер, с помощью которого во время разработки можно отслеживать ошибки в коде. Чтобы им воспользоваться, перейдем по адресу /app_dev.php
Теперь внизу страницы есть панелька с разными данными. Перейдем по адресу /news/1 и увидим сообщение о том, что наш контроллер вернул null вместо объекта класса Response.
Вообщем, приложение к контроллеру обращается, это главное.
Чтобы это исправить, создадим вьюшку, в которой будет отображаться наша новость. Вьюшки хранятся в папке app/resources/views
Создадим подпапку news, в ней файл show.html.twig
По умолчанию симфони поставляется с шаблонизатором под названием Twig, он клёвый. Чтобы разобраться с базовым синтаксисом, достаточно пробежать страницу https://symfony.com/doc/3.4/templating.html
Напишем пару строчек просто чтобы убедиться что мы всё делаем правильно и вьюшка будет рендериться.
Аноним 11/11/18 Вск 17:07:37  186392421
6.png (108Кб, 1920x1080)
Потом изменим метод showAction нашего ArticleController, добавив в него строку
return $this->render('news/show.html.twig');

Переходим по адресу /news/1, видим что вьюшка показывается. Всё ок, можно приступать к сущностям.

Симфони сам по себе не предоставляет никаких методов для работы с БД, вместо этого он идет в комплекте с ORM Doctrine.
Мини-гайдик по ссылке https://symfony.com/doc/3.4/doctrine.html
Мы еще не создали бд для нашего проекта, поэтому создаём её командой php bin/console doctrine:database:create
Если вы указали верные данные в parameters.yml, то в консоли вы должны увидеть сообщение о том что БД успешно создана.
Далее нам нужно создать класс сущности. Для этого мы можем использовать консольную команду php bin/console doctrine:generate:entity
В интерактивном режиме сначала указываем shortcut name в формате Bundle:Entity, то есть пишем AppBundle:Article
Далее ждем Enter при выборе формата конфигурации, оставляя аннотации по дефолту.
Далее нам предложено указать какие поля будут у нашей таблицы в бд, соответственно и свойства нашей сущности.
В тексте задания явно прописано - "Новость состоит из заголовка, текста, и даты."
Соответственно для первого поля указываем имя header, field type оставляем по умолчанию string, далее жмем enter пока не перейдем к следующему полю.
Следующее поле называем text, тип тоже text, остальное по умолчанию.
Последнее поле created_at, тип datetime, остальное по умолчанию.
Ждем enter когда нам предложено ввести имя следующего поля, тем самым прекращая создание. В консоли должно появиться сообщение что всё создалось.
Проверяем файлы проекта, должны появиться папки Entity и Repository в /src/AppBundle, в них по одному классу по имени нашей сущности
Необходимо внести кое-какие изменения в класс нашей сущности, а именно сделать так чтобы в поле created_at автоматически писался текущий таймстэмп.
Для этого в начало файла, там где директивы use, добавляем:
use Doctrine\ORM\Mapping\HasLifecycleCallbacks;
use Doctrine\ORM\Mapping\PrePersist;

Теперь нужно создать PrePersist хук на лайфцикл доктрины, обозначив его специальной аннотацией. Эта функция будет вызывать перед сохранением сущности в бд и будет присваивать свойству createdAt объект с текущим таймстэмпом.
Если этого не сделать, то нужно будет либо вручную каждый раз устанавливать его, либо будет ошибка, тк поле в таблице в бд не может быть null.

/
@PrePersist
/
public function setTimeStamp() {
$this->createdAt = new \DateTime();
}
Аноним 11/11/18 Вск 17:09:01  186392521
5.png (110Кб, 1920x1080)
Теперь создадим таблицу в бд с помощью команды php bin/console doctrine:schema:update --force

Хорошо. Но наша таблица сейчас пустая, а заданием предусмотрено создания консольной команды для добавление новых новостей. Давайте сделаем это для того чтобы продолжить работать с уже каким-то набором записей в бд.
Как создаются новые консольные команды описано вот на этой странице документации https://symfony.com/doc/3.4/console.html

Для начала создадим папку Command в /src/AppBundle, потом создадим класс addArticleCommand в этой папке. Пример класса есть в документации, можно скопировать, оставив методы пустыми.
Потом заполняем методы configure и execute, за основу берем пример из документации, меняем количество и название аргументов на те которые нам нужны, как и вывод в консоль в методе execute.
Не забываем импортировать все необходимые классы в начале файла.
Аноним 11/11/18 Вск 17:12:51  186392760
7.png (104Кб, 1920x1080)
Теперь самое главное - наша консольная команда должна принимать аргументы и создавать новую новость.
Консольные команды имеют доступ к сервисам - специальным классам которые доступны отовсюду внутри бандла. Нам необходимо создать сервис ArticleService, который будет сохранять новую новость.
Как это делается написано на странице https://symfony.com/doc/3.4/service_container.html
Создаём папку Service в /src/AppBundle, в ней создаём класс ArticleService, объявляем неймсейс namespace AppBundle\Service;
Импортируем те классы, которые нам понадобятся в этом сервисе
use AppBundle\Entity\Article;
use Doctrine\ORM\EntityManagerInterface;

Сервисы сами по себе не имеют доступа к объекту $container, который содержит другие сервисы. Для того чтобы получить доступ к другим сервисам, используется паттерн dependency injection.
Для этого необходимо создать метод __construct() внутри нашего класса, указав что он должен принимать аргумент $entityManager, с помощью typeHint указываем что это должен быть EntityManagerInterface.
Произойдет магия и симфони, основываясь на typeHint аргумента, сама создаст и передаст нужный аргумент нашему классу. Клёво, правда?
В теле конструктора просто присваем полученный entityManager полю нашего класса (которые мы не объявляли, но благодаря магии пхп оно будет создано на лету) с таким же именем. Теперь мы можем использовать менеджер сущностей, создавать и сохранять данные в бд из сервиса.
Создаём метод create, он максимально простой. Как создавать и сохранять объекты в бд с помощью доктрины описано на странице https://symfony.com/doc/3.4/doctrine.html#persisting-objects-to-the-database
Этому методы из класса консольной команды мы будем передавать заголовок и текст статьи, полученные из ввода пользователя, поэтому указываем соответствующие принимаемые аргументы. Ничего сложного.
Аноним 11/11/18 Вск 17:13:44  186392811
8.png (121Кб, 1920x1080)
Вернемся к классу консольной команды. Также как и сервисы, консольные команды сами по себе не имеют доступа к Service Container, поэтому для доступа к сервисам нужно использовать dependency injection.
Создаём конструктор, указываем в аргументах класс сервиса с тайпхинтом, в теле присваиваем его полю класса, а потом вызываем родительский конструктор.

В методе execute добавляем вызов сервиса с передачей ему аргументов.
Тестим в консоли командой php bin/console app:add-article "test" "test"

Если всё ок - должно появиться сообщение с текстом который мы писали в методе execute.


Хорошо, с созданием новостей через консоль разобрались, попутно закрыв необязательный пункт к тестовом задании, что будет плюсом.
Создайте несколько новостей чтоб было с чем работать и возвращаемся к нашим контроллерам.
Аноним 11/11/18 Вск 17:14:33  186392864
9.png (109Кб, 1920x1080)
DefaultController должен по маршруту / выдывать все статьи которые имеются.
Значит переходим в файл /src/AppBundle/Controller/DefaultController.php и импортируем класс нашей сущности в начало файла вот так:

use AppBundle\Entity\Article;

Для того чтобы достать все новости из бд, мы воспользуемся репозиторием ArticleRepository, который был сгенерирован вместе с сущностью. Репозитории это классы, которые должны содержать в себе всю логику связанную с получением данных из бд. Их можно и нужно расширять своими методами, но у них уже есть куча стандартных полезных методов, в данном случае нам нужен метод findAll.

Получаем репозиторий и сохрянем его в переменную $repository = $this->getDoctrine()->getRepository(Article::class);
Находим все новости $articles = $repository->findAll();
Рендерим вьюшку, передавая ей данные вторым аргументом функции render.
return $this->render('default/index.html.twig', [
'articles' => $articles,
]);
Аноним 11/11/18 Вск 17:14:54  186392894
>>186392160 (OP)
пхп хуйня, программисты не нужны
Аноним 11/11/18 Вск 17:14:57  186392896
10.png (51Кб, 1920x1080)
Теперь откроем файл вьюшки /App/Resources/views/default/index.html.twig
Про синтаксис шаблонизатора twig можно почитать на официальном сайте https://twig.symfony.com
В общем и целом он довольно простой. Тегами {% %} обозначаются функции шаблонизатора.
К свойстам объектов обращаемся используя точку, как в javascript.
В base.html.twig в блок stylesheets я добавил ссылку на bootstrap cdn, просто чтобы иметь возможность хоть как-то верстать без заморочек.
В начале мы указываем что наследуем текущий шаблон от base.html.twig лежащего в корне папки views
Потом определяем блок body, в него записываем простенькую верстку, дальше циклом for выводим все статьи.
Сохрянем, переходим / в браузере. Вуаля.
Аноним 11/11/18 Вск 17:15:56  186392954
>>186392894
Два чая.
Аноним 11/11/18 Вск 17:16:40  186393006
12.png (96Кб, 1920x1080)
Иллюстрация к предыдущему посту
Аноним 11/11/18 Вск 17:16:50  186393023
14426818345742.jpg (9Кб, 192x200)
>>186392896
>похапе
>верстка
Аноним 11/11/18 Вск 17:16:52  186393027
Муидло-анон выполняет тестовое на 30к джуниора, как это мило. Туду лист не забудь прикрутить.
Аноним 11/11/18 Вск 17:18:23  186393143
11.png (98Кб, 1920x1080)
13.png (118Кб, 1920x1080)
Теперь ArticleController.
Алгоритм такой же - импортируем класс Article, получаем репозиторий, с помощью метода find репозитория пытаемся получить новость.
Почему "пытаемся" - потому что новости с таким айди может и не быть, для этого мы выполним проверку и выбросим исключение в таком случае.
Потом рендерим вьюшку, передавая ей объект $article.
Во вьюшке всё еще проще, чем в прошлой, потому что даже цикла нет, просто берем и выводим данные.
Чтобы вывести дату создания, необходимо использовать один из фильтров twig, после знака | используем функцию date('d/m/Y')
Аноним 11/11/18 Вск 17:21:30  186393389
Вот и всё.
Естественно тестовое по своей сложности такое же, как дают джуниорам, некоторые конторы даже джунам дают сложнее тестовые - с авторизацией, пользователями, формами, валидацией, связями в бд и многим другим.

Теперь можно задавать вопросы.
Аноним 11/11/18 Вск 17:23:49  186393569
123.png (119Кб, 512x432)
>>186393143
Это задание из вводного курса CNP University по симфони
Аноним 11/11/18 Вск 17:25:13  186393675
>>186393389
>Теперь можно задавать вопросы.
Каково это быть пидором?
Аноним 11/11/18 Вск 17:25:43  186393713
>>186393389
Каким образом найти работу пхп-разработчиком в пынесранске на 300к голов?
Аноним 11/11/18 Вск 17:27:40  186393850
>>186393569
Это задание мне прислали в телеге, мне так-то похуй откуда его спиздили.
Аноним 11/11/18 Вск 17:28:47  186393941
>>186393713
Я сам живу в таком пынесранске, братишка, зарабатываю 55к на руки. Нашел работу на хедхантере. Если не получается найти, надо ехать в Москву, там работы дохуя.
Аноним 11/11/18 Вск 17:33:38  186394313
>>186393941
Нормальная компания или ИП Анзорик?
Аноним 11/11/18 Вск 17:35:06  186394418
>>186394313
Более-менее нормальная, свой продукт, владелец живет в сша, не веб-студия и не бодишоп.
Аноним 11/11/18 Вск 17:36:30  186394529
>>186394418
>бодишоп
Расшифруйте, люди добрые.
Аноним 11/11/18 Вск 17:40:58  186394844
Хуя тексты, лучше продолжу фуррей рисовать.
Аноним 11/11/18 Вск 17:44:30  186395056
f80aec55194c2b4[...].png (1076Кб, 900x1280)
Я хочу ковырять МК, но везде только веб-дев параша

ASM под pic, avr, stm32, C, C++, ADA
25 лет
Есть шансы на успех?
Аноним 11/11/18 Вск 17:47:42  186395261
>>186394529
>Расшифруйте, люди добрые.
Это когда контора продаёт труд работников другим конторам, имея разницу.
Аноним 11/11/18 Вск 17:48:07  186395294
>>186395056
>Есть шансы на успех?
А хз братан, я только по вебу
Аноним 11/11/18 Вск 17:53:01  186395588
>>186395261
Благодарю.
Аноним 11/11/18 Вск 17:57:07  186395825
>>186395056
Говно ебаное, дропнул после 6 лет работы в этой байтопараше и вкатываюсь с середины лета в бэк на питоне. Подумай, там ничего интересного нет, оно только поначалу интересно будет, потом тебя заебет из проекта в проект одно и то же делать, но при этом не иметь возможности использовать старый код, потому что в новом проекте что-то поменяется, и просто не получится так сделать. У меня несколько знакомых, кто тоже давно работает в этой области, и всех тоже заебала такая работа, кто мог, тот укатился.
Впрочем, в дс точно работа есть, но зарплата на таких вакансиях обычно ниже, работодатели охуевшие, потому что они эмбеддед-разработчиков за людей вообще не считают и думают, что это такая хуйня, с которой любой школьник справится, а нормальный программист за пару дней разберётся и начнёт код хуярить не хуже тебя, имеющего несколько лет этого говна за плечами.
С теми скиллами, что ты написал, найти работу вполне можно, тем более что стм32 наверно самый популярный мк сейчас, если есть желание, то вперёд. Видел даже какие-то вакансии с релокацией в Китай или пару крупных российских городов.
Аноним 11/11/18 Вск 17:59:08  186395973
>>186395056
Да. Но твой потолок - 100-120к в ДС, причем начинать будешь с 50-60 и до сотки переть лет 5-7 (без учета инфляции и индексаций)
Аноним 11/11/18 Вск 18:01:13  186396115
>>186393389
Спасибо ОП!
Хотел схоронить в архивач, а он умир (((, че делать-та?
Аноним 11/11/18 Вск 18:06:30  186396499
>>186393389
Сам вкатился в это или универ, курсы какие нибудь
Аноним 11/11/18 Вск 18:07:36  186396575
>>186395825
Алсо, для успеха знаний мк и с/++ мало будет, надо иметь представление о базовых конструкциях ОС (мьютексы, треды и т.д.), знать usb-стэк, потому что в любом нормальном устройстве уже никто не станет использовать подключение к пк через ком-порт, причём как девайс, так и хост, знать сети и нижние уровни сетевого стэка, потому что многие устройства делаются для работы с сетью, часто может понадобиться знание скриптовых языков для автоматизации разных задач на пк и тестирования устройств (питон будет лучшим выбором), знание линукса не помешает, кое-где ещё и опыт разработки под него хотят, потому что на устройстве он крутится.
И всё очень сильно зависеть будет от конторы, потому что в некоторых тебе напиздят про разнообразные задачи, а на деле тебе лично будут делегировать только самую тухлую работу: поднять интерфейс, написать протокол, получить данные с датчиков и тд, а логикой будут заниматься другие разрабы.
Как по мне, так начать проще, чем в любой другой области, но и контор меньше, в некоторых адовый бардак и пиздец (архивы вместо контроля версий и человек, который вручную мержит код, а потом выдает обратно архивы сотрудникам).
Аноним 11/11/18 Вск 18:09:31  186396698
>>186396499
Cам вкатился, образования нет
Аноним 11/11/18 Вск 18:10:15  186396745
Всякие курсы и прочая хуйня это залупа для отъёма бабла у доверчивых лохов, еще ни одного пограмиста не видел который бы стал таковым после курсов. Тут либо сам прёшь, либо это не твоё.
Аноним 11/11/18 Вск 18:15:05  186397079
>>186392160 (OP)
>Сегодня я написал для вас УЛЬТИМЕЙТ ГАЙД
В жопу его себе засунь - без теоретической\практической базы это всё просто набор модных и непонятных словечек для мимокрока.

>>186396745
Удвою пожалуй.
Самое забавное, что объебавшееся быдло сами открывает такой наебизнес - для других таких же свитчеров. Каков пиздец?
Аноним 11/11/18 Вск 18:15:53  186397133
>>186397079
Обидно, сначала ты меня оскорбил, а потом удвоил. Эх.
Аноним 11/11/18 Вск 18:17:22  186397260
>>186396698
Сколько по времени заняло обучение?
Аноним 11/11/18 Вск 18:17:48  186397297
рирлло
Аноним 11/11/18 Вск 18:18:04  186397320
лдлд
Аноним 11/11/18 Вск 18:18:28  186397346
>>186397260
Ну года два где-то. Но я ленивое говно, можно было за полгода осилить, если яйца железные. У меня не железные.
Аноним 11/11/18 Вск 18:19:53  186397441
рокет саенс какой-то
мимо реакт разработчик
Аноним 11/11/18 Вск 18:19:58  186397448
Я не понял, в чем суть треда? Зачем тут этот гайд, их и так полно
Аноним 11/11/18 Вск 18:20:24  186397485
>>186397133
>сначала ты меня оскорбил
Я тебя вообще не знаю - я к репликам относился. В одной ты сморозил хуйню, а во второй нет.
Аноним 11/11/18 Вск 18:22:00  186397607
>>186397485
Гайд больше для тех кто уже вкатывается, но кто еще не осиливает тестовые самостоятельно.

>>186397448
>Я не понял, в чем суть треда? Зачем тут этот гайд, их и так полно
Суть треда - поделиться знаниями. Гайдов дохуя, но все они говно, как и этот, но тут хотя бы вопросы можно мне задать.
Аноним 11/11/18 Вск 18:23:37  186397723
>>186397346
А первую работу через какое время после обучения нашёл?
Аноним 11/11/18 Вск 18:24:07  186397760
>>186397607
Ты считаешь это был правильный выбор? Не жалеешь что вкатился ?
Аноним 11/11/18 Вск 18:30:10  186398194
>>186397607
>тут хотя бы вопросы можно мне задать.
Ок.
Что за мода называть так уебански классы типа Mocha\Govno\Huynia?
Аноним 11/11/18 Вск 18:31:47  186398302
>>186398194
Какие классы я так назвал?
Аноним 11/11/18 Вск 18:32:52  186398351
>>186398194
>классы типа Mocha\Govno\Huynia
Долбоящер блядь, это неймспейс.
Аноним 11/11/18 Вск 18:34:18  186398432
>>186398302
>Импортируем те классы, которые нам понадобятся в этом сервисе
>use AppBundle\Entity\Article;
>use Doctrine\ORM\EntityManagerInterface

>>186392760
Аноним 11/11/18 Вск 18:34:46  186398461
>>186398351
Бля.
Аноним 11/11/18 Вск 18:35:42  186398511
>>186398351
Но я и классы видел в таком стиле.
Как-то даже один хер чёто писал для замены одних слэшей на другие.
Аноним 11/11/18 Вск 18:37:03  186398584
ОП, у меня только один вопрос:
почему не Laravel?
Аноним 11/11/18 Вск 18:38:41  186398684
>>186392241
>Я работаю под виндой
Сега, скрыл
Аноним 11/11/18 Вск 18:44:22  186399070
>>186398584
Почему не CodeIgniter вообще? Охуенный же фрейм.
Аноним 11/11/18 Вск 18:45:14  186399143
>>186393027
Зря ты так, мне бы и 30к с перспективой подошли бы. Бамп.
Аноним 11/11/18 Вск 18:50:51  186399607
>>186393389
Чо читать, чтоб также разбираться в этом?
Аноним 11/11/18 Вск 18:51:42  186399669
>>186399607
Корна извинись
Аноним 11/11/18 Вск 18:52:03  186399699
>>186399607
>>186399669
Коран
Аноним 11/11/18 Вск 18:54:35  186399914
>>186398584
Могу и на ларе, мне пох. Лара она проще, симфони более всеобъемлющий. Тестовое такое, что попалось про то и сделал гайд.
Аноним 11/11/18 Вск 18:56:22  186400097
>>186397723
Примерно через два года
>>186397760
Абсолютно. У меня был выбор либо веб либо идти охранником или другим днищем
Аноним 11/11/18 Вск 19:00:07  186400426
>>186399914
>Лара она проще, симфони более всеобъемлющий
Сразу видно, что в инструментах ты собсно нихуя не разбираешься
Аноним 11/11/18 Вск 19:04:52  186400809
>>186400426
>в инструментах
Что несёшь поехавший? Это фреймворки и да лара проще симфони. А вобще все эти ларавелы, симфони и yii для пидоров.
nodejs-господин
Аноним 11/11/18 Вск 19:09:44  186401216
>>186399070
Кстати, охуенный. Но что там с четверкой? а нихуя там с четверкой
Аноним 11/11/18 Вск 19:11:54  186401381
>>186400809
Yii точно для пидоров. Нахуевертили какой-то дичи. CodeIgniter вот был охуенен, но сдох в корчах.
Аноним 11/11/18 Вск 19:12:28  186401433
>>186400426
А с чем ты несогласен? Лара действительно проще, в ней например нет никак жестких правил касаемо сущностей, нет конструктора форм. Многие проблемы, решение которых стандартизировано в симфони, в ларе просто игнорируются, оставляя на усмотрение пользоватей.
Лара отличный фреймворк, лучший в своей весовой. Просто симфони это супертяж.
Ты наверно восторженный джун, который освоив чтото начинает везде холиварить, упуская из виду главное - это всего лишь инструменты, надо смотреть выше
Аноним 11/11/18 Вск 19:14:09  186401537
>>186401381
Вот сейчас обидно было.
Аноним 11/11/18 Вск 19:19:22  186401906
А я сейчас скачиваю "Герберт Шилдт «Java 8. Руководство для начинающих» (6-е издание) + примеры"
Будущий 300к/сек на подходе. Начинайте кидаться говном буду резво уклоняться
Аноним 11/11/18 Вск 19:24:14  186402230
Есть жабаисты? С вебом все понятно - сайтики, сервисы, магазинчики, визитка компании. А что пишут на Java?
Сайты встречаются редко.
А что есть интерпрайз проект? YOBA-CRM?
Аноним 11/11/18 Вск 19:36:44  186403275
>>186402230
На Java пишут всё, даже игры. Очень много Scala, которую с натяжкой можно считать суперсетом жавы. В интерпрайзе будешь в основном бекэнды и внутренние сервисы под нужды компании пилить. Да, те же CRM и ERP на практике встречаются почти всегда на жаве, иногда C# (Sharepoint), будешь расширять себе анус их. Ещё реже встречается php и совсем редко скриптовые С-подобные языки (SAP и Microsoft Dynamics), никому не советую такой участи.
Аноним 11/11/18 Вск 19:39:12  186403458
>>186401906
А до этого что читал?
Аноним 11/11/18 Вск 19:43:42  186403758
Selection001.png (40Кб, 674x352)
> суть тестового
Ебаный стыд. Ебаный же ты стыд... почему я не удивлен, что пхп-вкатышей реально считают тупыми...
Аноним 11/11/18 Вск 19:44:02  186403783
Пп
Аноним 11/11/18 Вск 19:44:03  186403784
>>186403458
Ничего, начинаю с нуля, пришёл вот к этой книге.
Аноним 11/11/18 Вск 19:45:01  186403871
6NGU9fBmuAU.jpg (260Кб, 1080x1440)
>>186392160 (OP)
Какое отношение имеет разработка уёб-сайта к программированию?
Аноним 11/11/18 Вск 19:46:20  186403966
Стикер (0Кб, 512x512)
>>186403784
Понятно.
Аноним 11/11/18 Вск 19:51:15  186404330
>>186403871
Хтмл тоже программирование.
Аноним 11/11/18 Вск 19:51:51  186404386
>>186392160 (OP)
Что за редактор на 3м пике?

отправлено с моего iphone
Аноним 11/11/18 Вск 20:33:19  186407198
>>186403871
Давай, маня, твое определение программирования
Аноним 11/11/18 Вск 20:35:33  186407343
>>186392160 (OP)
пхп? зочем?
Аноним 11/11/18 Вск 20:52:47  186408592
>>186407343
Деньги платят
Аноним 11/11/18 Вск 20:54:04  186408697
>>186408592
На клоунов и бесплатно посмотреть можно.
Аноним 11/11/18 Вск 20:58:49  186409000
>>186408592
почему не питон или ява?
Аноним 11/11/18 Вск 21:00:04  186409080
>>186409000
Прост
Аноним 11/11/18 Вск 21:04:47  186409412
>>186392160 (OP)
Спасибо, всегда проигрываю с таких тредов
Аноним 11/11/18 Вск 21:06:23  186409533
>>186409000
>ява
Потому что джава и потому что вакансий меньше, особенно в замкадье
Аноним 11/11/18 Вск 21:12:10  186409990
>>186408697
Да, я и смотрю. на тебя и подобных
Аноним 11/11/18 Вск 21:20:07  186410615
>>186392160 (OP)
Слишком даунское тестовое как мне кажется, тысяч 30-40 будут платить за клепание сайтов на конвейере. Для ДС не имея жилья прожить будет невозможно, лучше тогда уже что-то посерьёзнее учить или не ебать мозг и идти работать на завод.
Аноним 11/11/18 Вск 21:28:33  186411311
>>186410615
После выполнение тестового нет моментального трудоустройства, во-первых, это лишь оценить уровень адекватности кандидата и вообще стоит ли общаться более детально с ним.
Во-вторых, контора не занимается клепанием сайтиков, это СМИ, довольно старое с миллионами заходов на свой сайт ежедневно.
В-третьих, меня спросили ожидания по зп, я от балды ляпнул 100к+, хотя даже на 100к я не поеду в Москву, тк с учетом стоимости жилья там, этого слишком мало учитывая мою текущую зп в мухосранске и сколько я трачу на жилье.
В-четвертых, что значит "посерьёзнее"? Что ты этим вообще сказать хотел? Симфони-мидлы, коих у меня знакомых целых два, получают 120к+ в офисах в Москве. И оба занимаются не клепаниями сайтов, а нормальной разработкой.
Аноним 11/11/18 Вск 21:37:30  186412059
>>186411311
Ну для тестового что нибудь оригинальнее, хз парсер какой нибудь, логику валидации формы хитрую. Кстати я тоже проходил все этапы собеседования на вакансию разраба, правда не пхп и отказался так как я ебал ехать в ДС поработать за копейки. Скоро куплю хату и попробую снова начать поиски, а то где я сейчас живу впринципе нет айти вакансий.
Аноним 11/11/18 Вск 21:41:35  186412390
15323402940080.jpg (21Кб, 440x251)
>>186392160 (OP)
>московских
>100к
Да вы чё нахуй

>>186412059
>оригинальнее
>парсер
Да вы чё нахуй

>ПЫХЭПЭ
...
Аноним 11/11/18 Вск 22:00:49  186413734
>>186412059
>Ну для тестового что нибудь оригинальнее, хз парсер какой нибудь, логику валидации формы хитрую.
Ну тебе с дивана видимо виднее, чем начальнику отдела.

>>186412390
>>ПЫХЭПЭ
Что за мода хейтить пхп? Ты хоть объяснить то сможешь в чем претензии у тебя к этому языку?


Топ тредов
Избранное