[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Тестовое задание
Страницы: 1, 2, 3
DragonNoir
Цитата (Oyeme @ 23.03.2016 - 18:58)
Это показыает что "программист", очень низкого ранга и плохо учился в школе.


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

_____________
- Сколько тебе надо времени на задачу?
- Месяц.
- А если дам тебе помощника?
- Тогда два месяца.
twin
Цитата (DragonNoir @ 23.03.2016 - 15:06)
В ТЗ есть требование логировать ошибки. Как вы без эксепшена отловите ошибку на стороне мускуля, например, в случае неправильного запроса?
Ну как бы у него это решено. Кривенько, но решено. А отлова штатных эксепшенов mysqli_ я в задании не вижу.

Цитата (DragonNoir @ 23.03.2016 - 15:06)
Архитектура. Какой тогда вообще смысл использовать классы, если не понимаешь их назначения?
В задании писалось про один класс. Какая тут архитектура? Зачем советовать ему разбивать это на несколько классов?

Цитата (DragonNoir @ 23.03.2016 - 15:06)
Т.е. вы не знаете разницы между include и require? Первый в случае ошибки в подключаемом файле выдаст notice и скрипт продолжит работу, а второй выкидывает fatal

Я знаю, потому и не понял совета. Для чего там фатал?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Oyeme
Цитата
Ну он же не в Англии.  smile.gif Вообще английский язык есть нескольких типов. Тебе ли не знать. Международный английский первым принципом имеет понятность, а не лингвистическую изысканность. Эта фраза:


Ваш идеальный кандидат должен вообще не знать ООП, использовать процедурный стиль программирования и минимум знать английский язык.

А на работу его должны взять сразу,а не по дурацким тестам.

Но с таким подходом его ждет макдональдс.

В 99.99% то что я упомянул отпугнет в любой стране мира (если компания хорошего уровня , а не говно-контора)
chee
Oyeme, я бы не акцентировал внимания на английском языке, мне вообще кажется, если компания работает на российском рынке и программисты русские, то нужно писать всю документацию на русском, че из себя корчить достоподченых сэров, всё равно выйдут Васи из соседнего двора biggrin.gif

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Цитата (Oyeme @ 23.03.2016 - 15:22)
Ваш идеальный кандидат должен вообще не знать ООП, использовать процедурный стиль программирования и минимум знать английский язык.

Почти так. Только не
Цитата
должен вообще не знать ООП, использовать процедурный стиль программирования
а совсем не обязательно. Ибо ООП вообще никто не знает. А английского вполне достаточно технического, ну или лучше международного. Чтобы разбираться в алгоритмах, не обязательно уметь читать Шекспира в подлиннике.

Цитата (Oyeme @ 23.03.2016 - 15:22)
А на работе его должны взять сразу,а не по дурацким тестам

Не сразу, а после собеседования.
Цитата (Oyeme @ 23.03.2016 - 15:22)
Но с таким подходом его ждет макдональдс.

Макдональдс ждет как раз тех, кто вместо знаний PHP упирается в английский и паттерны. Что по большому счету дело сугубо индивидуальное (читай: корпоративная архитектура).

По твоему пусть он не знает принципов обработки данных для запроса, но должен наизусть процитировать отрывок из Макбе́т

Цитата (Oyeme @ 23.03.2016 - 15:22)
В 99.99% то что я упомянул отпугнет в любой стране мира (если компания хорошего уровня , а не говно-контора)

Да спустись уже с небес. Уровень он определяет. По такому принципу 99,99% контор в России - говноконторы. Я не буду патриотично спорить, но факт в том, что у нас (а он наверняка не в Англию устраивается) почти везде на чистоту английского языка плюют с пизанской башни.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
DragonNoir
Хоть это уже и оффтоп, но все же отвечу

Цитата (twin @ 23.03.2016 - 19:15)
А отлова штатных эксепшенов mysqli_ я в задании не вижу

А эксепшн это не ошибка? Тоже ошибка, только с фатальным уровнем критичности. Скрипт, как бы хорошо или плохо но не был написан, не должен отваливаться. Он должен отработать до конца.


Цитата (twin @ 23.03.2016 - 19:15)
В задании писалось про один класс. Какая тут архитектура? Зачем советовать ему разбивать это на несколько классов?

Как я раньше говорил, одной из целей тестового задания является определение того, анализирует ли человек задачу, думает ли о дальнейшей поддержке кода или действует по принципу "написал и забыл". А разбить на несколько классов стоит хотя бы из-за принципа единичной ответственности класса.

Цитата (twin @ 23.03.2016 - 19:15)
Для чего там фатал?

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


_____________
- Сколько тебе надо времени на задачу?
- Месяц.
- А если дам тебе помощника?
- Тогда два месяца.
twin
Цитата (DragonNoir @ 23.03.2016 - 15:34)
А эксепшн это не ошибка? Тоже ошибка, только с фатальным уровнем критичности. Скрипт, как бы хорошо или плохо но не был написан, не должен отваливаться. Он должен отработать до конца.

Ты не понял. Если класс выкинет эксепшен, ловить его нужно за пределами класса. А значит это не входит в задание.

Цитата (DragonNoir @ 23.03.2016 - 15:34)
Как я раньше говорил, одной из целей тестового задания является определение того, анализирует ли человек задачу, думает ли о дальнейшей поддержке кода или действует по принципу "написал и забыл". А разбить на несколько классов стоит хотя бы из-за принципа единичной ответственности класса.

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

Цитата (DragonNoir @ 23.03.2016 - 15:34)
В подавляющем большинстве случаев нотисы игнорят, а потом убивают кучу времени на поиск ошибок. Это был просто совет начинать прививать привычку, которая потом может сэкономить кучу времени и нервов.

Это лечение следствия, а не причины. Зачем игнорить нотисы, да еще и способствовать этому? Да и еще, для чего юзеру белый лист или ошибка? Можно же выдать заглушку или еще как обработать. Убить скрипт ума много не надо. smile.gif Сам же сказал:
Цитата
Скрипт, как бы хорошо или плохо но не был написан, не должен отваливаться. Он должен отработать до конца


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
inpost
macheninarctica
Ну так пиши комментарии на русском.
И ты придумал как ты будешь пользоваться этим классом внутри функций и других классов?

config.php – конфигурационный файл. В нем в массив $GLOBALS заносятся параметры
подключения (хост, логин, пароль) и имя БД.
Тут где-то было слово про файл, куда записываем? Нет. Ты нарушил условие.

mysql.php – собственно, класс работы с БД. 3 функции:
3 функции, у тебя 4. Зачем тебе подключение к БД отдельно?! Опять нарушил условие.

$user = new DataBaseSelector($host, $login, $password, $db_name,$filename);

$user ? При чём тут вообще пользователь, когда это соединение с Базой Данных, где дальше будут РАЗНЫЕ ЗАПРОСЫ, не только для получения пользователя. Или ты хотел отдельные экземляры класса делать под разные запросы? Если да, то ты создашь сотни соединений с Базой Данных, чем навлек на себя ещё больше ненависти.

$user->connect_db();

Это говорит лишь о том, что ты ПЕРВЫЙ РАЗ работаешь с mysqli в этом тестовом задании. В MySQLi класс ты передал 4 параметра в __construct, там и была передана База Данных, то есть ты уже выбрал Базу Данных. А потом ЕЩЁ РАЗ выбирать? 2 действия говорят о том, что ты впервые воспользовался и не до конца прочитал мануал по MySQLI.

Далее в вызове запроса ты передаёшь: $db_name. А как возможно быть ДРУГОЕ имя, если ты переключать можешь ТОЛЬКО через connect_db, который изменит во всём экземпляре. Итого я могу сделать выводы, что ты запутался в своём коде.

Выводы:
- Неправильно интерпретировал задание, нарушил задание, сделал как хочет, а не как требуется.
- Запутался в работе с Базой Данных. Дважды подключался к Базе Данных.
- Запутался в работе с классом. Передаёшь параметры, которые не нужны.
- В файле не прописал уровень вывода ошибок и кодировку.
- db_request не вернул ничего, в связи с этим пошла цепочка ошибок, ведь скрипт не был остановлен, но при этом ничего и не вернул.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
twin
Цитата (inpost @ 23.03.2016 - 15:53)
Далее в вызове запроса ты передаёшь: $db_name. А как возможно быть ДРУГОЕ имя, если ты переключать можешь ТОЛЬКО через connect_db, который изменит во всём экземпляре. Итого я могу сделать выводы, что ты запутался в своём коде.

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

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
macheninarctica
Так.. должность была помощник программиста.)))) так что не думайте что я там супер спец.. прогаю от силы 2 месяца в общей сложности после работы.. и в основном для своего удовольствия. ну и сделал сайт с админкой. вот все мои достижения.
НО спасибо за комментарии.. особенно которые по делу.. интересно послушать чужое мнение..
P. S. с английским беда, в школе его практически не было)))
twin
macheninarctica
Перепиши класс согласно советам и выложи новую версию. Узнаешь еще много нового. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
SerginhoLD
Цитата (macheninarctica @ 23.03.2016 - 10:27)
Задача:
Написать класс работы с MySQL с отдельными функциями подключения к MySQL-
серверу, выбора БД, выполнения запроса. В файле log.txt должен вестись лог запросов и
ошибок.

Цитата (macheninarctica @ 23.03.2016 - 10:27)
class DataBaseSelector extends Mysqli

как бы если используется Mysqli то половину вообще писать не надо..
Конструктор есть, выбор/смена бд есть, запрос есть. Только лог прикрутить и все.

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

_____________
"internet explorer всех правильней отображает страницы" ©
inpost
twin
Там передавать подразумевалось как входящий аргумент, а не отдельный метод пилить. Перечень методов названо ниже по документации. Имелось ввиду в методы подключения (указанном первым) и надо было передавать имя Базы Данных.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
twin
Цитата (inpost @ 23.03.2016 - 18:43)
Там передавать подразумевалось как входящий аргумент, а не отдельный метод пилить

Ну как то вроде нет))) Вот:
Цитата
с отдельными функциями подключения к MySQL-
серверу, выбора БД, выполнения запроса.
через запятую, значит отдельным методом. Ниже этого нет, но это уже к вопросу компеенции автора теста, на что уже chee указал. smile.gif Либо детали реализации, это уже пояснения ТС.

Но я собственно не о том, а об этом:
Цитата (inpost @ 23.03.2016 - 15:53)
Запутался в работе с Базой Данных. Дважды подключался к Базе Данных.
Нет там двух подключений.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
inpost
http://my.jetscreenshot.com/7950/20160324-blwv-41kb.jpg
http://my.jetscreenshot.com/7950/20160324-pf7h-45kb.jpg


_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.