В основном сарафанное радио. Друзья/знакомые/бывшие коллеги/бывшие работодатели. Иногда с бирж - раза три там брал проекты, потом пишут с предложениями поработать еще. Возможно дело в том что делаю серьезные вещи, а у таких заказчиков всегда много работы и нехватка хороших специалистов.
Если вы хотите проверять насколько человек овладел конструкциями языка, паттернами, хорошими и плохими подходами - то это действительно крайне сложная задача. Если дать этот код пятерым опытным программистам - у каждого будет свое мнение, как стоило написать. двое скажут что все отлично, один скажет говно какое-то, еще пара - что пойдет но надо вот тут и тут по другому было. В дверь заглянет шестой и скажет что наследование без причины признак дурачины и то что вы проверяете - вообще не правильно поставленная задача.
Если вы хотите проверять смог ли человек по заданию "Эти атрибуты автомобиль получает в конструкторе: Automobil(Motor motor, Wheel wheel1, Wheel wheel2...)" создать конструктор с параметрами "Motor motor, Wheel wheel1, Wheel wheel2" - то это задача бестолковая. Ничему не учит кроме способности копипасты.
Мое имхо.
Как бы вы проверили это еще
в простых случаях, когда надо просто проверить что есть конструктор, созданы классы, есть нужные параметры - я бы проверил регуляркой прямо по тексту. В более сложных - смотри комент выше про оценку кода.
Но, ничто не мешает вам делать то что вы хотите :) удачи.
Если не возможно скопировать, сделайте скриншот. или просто перепечайте текст ошибки. Вы же хотите быть разработчиком - учитесь решать проблемы :) И формулировать вопросы.
Если требуется по заданию - выносите, показывайте код и пишите в чем конкретно у вас проблема. Не знаете как? не работает? Выдает ошибки? Не понимаете текст задания что именно надо сделать?
Пока у вас вопрос звучит как "требуется вынести функцию, но при этом нельзя выносить функцию". Есть стойкое ощущение что вы или чего-то не договариваете или чего-то не понимаете.
Igor_ku, Для меня задача анализа структуры класса выглядит сомнительно. Или у вас будут крайне жесткие задания типа "напишите класс A с методом m у которого два параметра - строка и число", и смысла в них особо нет, (и их можно проверить регуляркой какой-нибудь прямо по исходнику)
Либо у вас будут 100500 совершенно разных вариантов решения, которые только человек сможет нормально проанализировать.
Приведите пример задания где для проверки нужен анализ структуры кода, интересно.
Выписывает ошибку, что Checkinput() должен быть объявлен вне функции makeColorString(), но при этом требуется, чтобы makeColorString() включала в себя весь код (!).
Скопирйте ошибку.
кому требуется? Вам или яндексу или по заданию? Что именно вам не дает checkInput вынести из makeColorString и просто вызывать ее оттуда?
DYLAN, хотите все самое свеженькое - прикручивайте бабель. Иначе в вашей жизни будет много недопрочитанных рамочек. Хотя и с бабелем их тоже не рекомендуется игнорировать.
Если ТЗ имеется - то это и есть описание функциональности.
Или у вас какое-то не такое ТЗ (тогда примеры хорошего ТЗ вы можете и сами нагуглить), или вы хотите что-то другое описать. Архитектуру приложения например?
Для начала разберитесь что такое наследование. У вас его нет и оно вам не нужно. Сделайте Form и туда все "понапихайте", чтобы работало, потом посмотрите что можно вынести в отдельный класс (например валидацию, может быть работу с сетью, еще что-то) и это будет не через наследование
Август Милович, Округлите ширину так чтобы она делилась на количество клеток без остатка, чтобы сетка попадала ровно на пикселы и будет вам счастье.
браузер при использовании div рисует четкие линии не потому что он "может" а потому что просто забивает на размеры которые вы от него хотите и рисует так как ему больше нравится, добавляя/убавляя пикселы. Клетки сетки на дивах у вас будут не одинаковые по размеру и за счет этого граница всегда в 1 пиксел.
Как часто вам нужно это делать и во сколько мс надо уложиться?
Какие лимиты по памяти/процессору?
Вы точно уверены что стоит переживать за производительность?
Если да - делайте оптимизации. обрабатывайте строки отдельно, explode замените на пробег в цикле с буфером куда будете складывать слова можно много чего еще придумать.
Не очень понятно что значит "на go поднят а php слушает". https надо поднимать там куда приходит соединение от браузера, и где обрабатывается протокол HTTP(s). Если это происходит в go - значит в go, если в php - значит в php. По логике, это все же должен быть go.
А зачем вам очередь? Вытайскивайте, парсите, записывайте, вытаскивайте, парсите, записывайте, повторяйте пока не будет обработано все. Запустите скрипт и подождите пока он не отаботает, сходите выпейте чаю, наладьте личную жизнь, сделайте еще что-то полезное.