![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Royan |
|
|||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 3 Всего: 15 |
Итак вот столько очков я выбил в каждой из категорий, по которым оценивается SCJD
General Con: 100 90 Documentation: 70 70 OOD: 30 30 GUI: 40 28 Locking: 80 80 Data Store: 40 40 Network Server: 40 30 Всего: 368 из 400 возможных Для тех кто знаком с тематикой предлагаю перейти к моим заметкам о том какие решения я принял в той или иной области и моим объяснениям почему, по-моему мнению, мне вычли баллы. Для тех кто незнаком с темой, предлагаю начать свое знакомство с ней вот отсюда: http://www.sun.com/training/catalog/courses/CX-310-252A.xml или отсюда http://faq.javaranch.com/java/ScjdFaq Если уж совсем коротко, то для того чтобы получить SCJD, надо выполнить задание (assignment), которое, грубо говоря, разбито на три части. Первое – приложение, работающее с неким файлом данных через файловую систему, второе – standalone GUI приложение, которое умеет соединяться с удаленным сервером по сети (сервер это третья часть). Соединение можно реализовать либо через RMI, либо через сокеты, по выбору. Собственно само ТЗ содержит некие обязательные условия, которые надо выполнить в точности, малейшее отклонение влечет за собой автоматический неуд, и некоторые условия, которые выполнить желательно (как я понимаю невыполнение коих влечет за собой вычет баллов). Итак по пунктам. General considerations (90 из 100): Здесь оценивают насколько ваш код легок для понимания и дальнейшей поддержки. Думаю минус 10 баллов я получил в том числе и за использование класса Constants, который (как следует из его названия) служит для хранения констант и имеет примерно следующую структуру:
Доки (70 из 70) Нужно задокументировать весь код (ну это в идеале О том какая прикольная тула javadoc написано тут: http://java.sun.com/javase/6/docs/technote...adoc/index.html самое клевое что я узнал документируя свой код это то что есть такие прикольные тэги как {@inheritDoc} и {@code} OOD (30 из 30) Я использовал паттерн MVC для реализации взаимодействия GUI элементов, который собственно представлял из себя внутренний класс основного окна приложения. Еще у меня была крайне удобная (по крайней мере я так считаю) иерархия из всего двух интерфейсов – один для имплементации локального общения с фалом данных (этот интерфейс был родителем), а второй для реализации сетевого общения, которое я решил писать с помощью RMI. GUI (28 из 40) Понять за что я получил минус 12 очков я не могу, может быть за то, что вместо реализации контекстного меню на таблице, где выводились записи, я обрабатывал двойной щелчок по JTable'у по которому вылетало диалоговое окно с различными вариантами дальнейших действий, но наверно не только за это. Locking (80 из 80) Судя по постам на javaranch (http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=forum&f=25) этот критерий является самым провальным, ну или на нем проседают большинство оценок. То есть мне повезло Короче для синхронизации того кода, что использовался мной из нескольких потоков я использовал ReentrantLock. Причина проста – мне классы из concurrency пекеджа нравится больше чем классический вариант с synchronized блоками. Разумеется у такого подхода есть и технические плюсы, вытекающие из свойств собственно класса ReentrantLock. Кстати, будет не лишним сказать, что я не поленился написать тесты для своего многопоточного кода, которые по своей сути были весьма просты. От 100 до 1000 потоков одновременно читали и записывали в используемый мной файл данных. После чего я открывал его из моего GUI приложения и если он не был в результате теста испорчен, я считал, что все в порядке. Кстати этот подход позволил мне найти один весьма неприятный баг, который я бы вряд ли нашел не написав тестов. Data store (40 из 40) Че это такое я понятия не имею, но я рад что получил за это 40 из 40 возможных баллов. Network Server (30 из 40): Реализовал тут классический RMI сервер без каких либо примечательных особенностей. Кстати на использование RMI налагаются обязательные к выполнению условия, самым важным, пожалуй, является то что нельзя использовать динамическую загрузку, необходимо предоставить stub RMI класса. За что я тут получил минус 10? Может за то что при старте сервера у меня открывалось окно, которое содержало всего одну кнопку "Stop server", которая соответственно сервер останавливала, однако если закрыть это окно, то единственный вариант убить сервер заключался в том, что нужно было тридцать три раза долбануть Ctrl+C дабы завершить java процесс (ну как любой процесс в командной строчке). Мда, эту фичу я прикручивал в последнюю очередь и элементарно забыл добавить обработчик события WINDOW_CLOSED. Вот собственно и все! Если какие вопросы, не стесняйтесь задавать! -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
| Keyo |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 10.4.2008 Репутация: нет Всего: нет |
класс... поздравляю. Сами готовились? Откуда брали материал для подготовки, если не секрет?
|
|||
|
||||
| Royan |
|
|||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 3 Всего: 15 |
Keyo, Спасибо, в общем-то понятие "брать материял" для этого экзамена не совсем пременимо, в силу недостатка практического опыта у меня возникали вопросы реализации того или иного компонента, тогда я либо задавал вопросы здесь, либо на google группах (кстати люди там супер, самые разнообразные идеи - это все там), а в конце всю специфику уточнял в баре "Большой лось" Вот, примерно так.
Это сообщение отредактировал(а) Royan - 30.10.2008, 12:45 -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
| SoulKeeper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 11 Всего: 15 |
Сколько времени дается на экзамен? Ограничения на использование IDE?
И вообще процедуру прохождения экзамена было бы хорошо описать в деталях. В прочем как и SCJP Это сообщение отредактировал(а) SoulKeeper - 30.10.2008, 14:27 |
|||
|
||||
| fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 6 Всего: 27 |
Скажи, а кроме практического задания входит ли тест в сертификацию? Если да, то в чем отличие теста от SCJP?
-------------------- ![]() |
|||
|
||||
| Royan |
|
|||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 3 Всего: 15 |
Итак SCJD состоит из двух частей. Первая - практическая часть (о которой я писал выше), вторая это эссе - письменный экзамен состоящий из 4-5 вопросов, касающихся деталей вашего задания. Считается, что вторая часть способна показать, что именно вы являетесь автором первой части. Вопросы там задаются из серии "Какую технологию вы использовали для реализации взаимодействия клиента и сервера и почему?" ну и подобные. Поэтому, отвечая на вопрос fixxer' скажу, нет, тест не входит, письменное эссе тестом все-таки считать трудно.
Схема получения SCJD такова. Вы покупаете первую часть экзамена, (как покупать я писал в теме про SCJP) скачиваете ее с сайта http://www.certmanager.net/sun_assignment/ То что вы скачиваете представляет собой обычный jar архив, в котором находится ваше задание в виде html файла. В этом задании все разжевано по кусочкам, что нужно сделать, что нельзя, какие правила и как вы должны потом предоставить результаты своей работы. Когда вы выполняете свое задание, то также запаковываете его в jar архив и заливаете им на вышеупомянутый сайт. Залить можно только один раз, поэтому у вас есть только один шанс, о чем вас заранее всячески предупреждают и просят перед отправкой все тщательно перепроверить . Как только вы залили свое задание, вы быстренько покупаете вторую часть экзамена и бежите сдавать письменное эссе. С письменным эссе рекомендуют не тянуть, потому что вашу первую часть будут проверять только когда вы сдадите эссе. На проверку задания обычно уходит 4-6 недель. В моем случае управились за четыре. Еще один важный для понимания момент при загрузке задания, среди прочих загружаемых файлов в одном и них вы обязаны указать версию JRE, на которой вы тестировали свое приложение и версию операционной системы. Это по понятным причинам сделано дабы исключить ситуацию когда кто-то пишет свое SCJD под маком, а его проверяют на XP. Ограничений нет, есть только условие что JRE, используемое в задании должно быть только release версий (никакие beta версии использовать нельзя) причем релиз версия должна быть не старше 18 месяцев на день загрузки вашего задания. То есть, например, релиз версия JRE 1.6.0_07 вышла 1 января 2007 года (я говорю, например, это не значит, что она действительно вышла 1 января 2008) Если вы ее указываете при загрузке первой части вашего задания то собственно загрузить это задание вы обязаны не позднее 30 июня 2009, в противном случае вы должны использовать более свежую версию JRE. Таких ограничений нет, но есть условие, чтобы в архиве, который вы в итоге загрузите не должно быть файлов кроме тех, которые требуется в ТЗ, таким образом, наличие файла проекта в архиве, или еще какой-то, случайно или неслучайно сгенерированной вашим IDE фигни, повлечет за собой автоматический неуд и вам придется покупать resubmition и переделывать работу. Это сообщение отредактировал(а) Royan - 31.10.2008, 02:13 -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
| AlexeyVorotnikov |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 658 Регистрация: 18.6.2007 Где: Москва Репутация: 10 Всего: 18 |
А можно поподробнее про Locking? В смысле как ты его реализовал?
Это сообщение отредактировал(а) AlexeyVorotnikov - 1.11.2008, 10:54 -------------------- RTFM! Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
А как же сановский лозунг |
|||
|
||||
| Royan |
|
||||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 3 Всего: 15 |
Реализовал очень просто:
Собственно так реализованы все методы пакета concurrent Ну на всякий случай я так понимаю. У тех, кто оценивает вашу работу очень строгие правила, если в stdout или в stderr вывалился stack-trace, ваша работа автоматически считается невыполненной. -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |