Пример выполнения тестового задания DoveSoftware

Пример выполнения тестового задания DoveSoftware

Продолжаем обсуждение тестовых заданий для Delphi  – программистов. Это задание было прислано моему хорошему другу odin.sergius . Это задание было прислано ему из компании DoveSoftware, outsourcing.

Задание и инструкцию найдете по ссылке:

https://docs.google.com/open?id=0B0QhIdibw-RMNGRhNzFjYTYtMTNjNC00M2U2LTk3ZmUtZDNkMTAxZWM3NjFh

Важные моменты:

– точность выполнения задания (не допускать необоснованное наращивание функционала не определенного ТЗ, доказать необходимость в противном случае)

– сроки (чем больше времени занимает реализация

– тем качественней должен быть результат)

– интерфейс, юзабилити (программа должна быть удобной конечному потребителю, но в рамках требований ТЗ)

– компактность кода, повторное использование

– ООП, паттерны (обоснование применения)

– ориентированность на изменения

Срок исполнения: 4 дня

Просим сообщить нам о начале работы над тестовым заданием.

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

Инструкция для программиста – для кандидатов.doc

Инструкция

Написания кода в программах для кандидатов

Rev. 1.5, 22 марта 2006 г.

Имена

Объект Префикс имени Размер
Форма приложения fa_ (файл af_) Для форм – ClientH, ClientW250 x 450, 300 x 500

350 x 550, 400 x 600

Общая форма fz_  (файл zf_)
Общий модуль zm_%ModuleName%
Модуль программы am_%ExeName%%ModuleName%
Модуль данных (TDataModule) fd_ (файл df_)
Прочие компоненты ctl_ 20 or std x …
Button btn_ 25 x 75, 100, 130, 150, 170
Label lbl_ 20 x …
Data Label (DBText) dbl 20 x …
Speed Button sbt_ std
GroupBox grp_
TNotebook,TPageControl ctl_Pages TabWidth 130TabHeight 25
TTabSheet tab_
Connection, Database db_
Table dt_
Query dq_
Datasource ds_
MainMenu mnu_Main, mnu_
PopupMenu mnp_Main, mnp
MenuItem mni_
Action act_

Расстояния между компонентами 5 (иногда 10). Все размеры компонентов должны быть кратны 5. В Delphi есть глюк: при сетке в 5 пикселей и ручном изменении размера по правой/нижней границе размер устанавливается на 1 больше (не 500, а 501). Это необходимо корректировать вручную. Исключение составляют компоненты, расположенные на PageControls и имеющие выравнивание alClient.

Все зарезервированные слова пишутся с большой буквы (Begin, End, While, Not, If, Or …).

Все имена (поля, процедуры, переменные и т.п.) описываются английскими словами (не “Sklad”, а “Stock”, не «NomerDocumenta», а “DocID”). Если в наименовании несколько смысловых значений, каждое из них начинается с большой буквы. Например, RecalculateRemainds или TotalSum. Желательно согласовывать все имена.

Все имена (кроме циклов i и временной строки s) должны иметь осмысленное значение на английском языке.

Все имена не должны совпадать с зарезервированными Delphi или SQL. Например, SUM, MAX, MIN и т.п.

Шрифт формы Tahoma, 8; Charset = RUSSIAN_CHARSET.

При описании переменных в теле private, public, published на одну переменную – одна строка (нельзя писать a, b, c: Integer).

Кнопки ОК, Отмена и т.п. должны находится либо в правом верхнем углу по вертикали, либо в правом нижнем углу по горизонтали.

Код программы

Примеры использования uses, procedure и т.п. описаны ниже.

Все строки внутри логических циклов смещаются на 2 пробела.

Если If не содержит Begin..End, все пишется в одну строку (пример ниже)

Implementation

{$R *.DFM}

Uses

zm_Module1;

 

Procedure YourTest;

Begin

Begin

Something;

End;

End;

 

Procedure LoopTest;

Begin

For i:= 0 To Var Do

Begin

Something;

End;

End;

 

Procedure IfTest;

Var

a, b: Integer;

Begin

If a > b Then

Begin

Something;

End

Else If b > a Then Exit;

End;

Процедуры и функции отделяются друг от друга строкой

{——————————————————————————}

Расходная накладная.doc

Расходная накладная

Программа выписки расходных накладных

  1. Среда разработки: Delphi XE (использовать только стандартные компоненты)
  2. СУБД: MS SQL (2000, 2005)
  3. Использовать компоненты доступа ADO
  4. База данных должна быть спроектирована для работы с большими объемами данных
  5. База данных создается вручную исключительно с помощью DDL-скриптов (приложить скрипты)
  6. Программа состоит из главного окна, представляющего собой расходную накладную
  7. Расходная накладная имеет
  8.              a.        заголовок: дата, номер, фирма (наша фирма), склад, предприятие (клиент), примечание
  9.             b.        товарную часть: позиция, товар, количество, цена, сумма (сумма хранится в базе и автоматически рассчитывается при изменении количества или цены)
  1. Интерфейс для ввода справочных данных реализовывать не требуется
  2. Справочники состоят только из кода и имени
Share

Tags: , ,

7 Responses to “Пример выполнения тестового задания DoveSoftware”

  1. Ольга пишет:

    И где тут выполнение. тут только задание, или вы ждете что кто-то напишет вам программу и базу создаст?

  2. Ольга конечно же мы не ждем, что кто – то сделает за нас тестовое задание. Тем более что сроки выполнения значительно меньше, чем время за которое на нашу статью наткнется человек , которые бы сделал все за меня. Более того работодатель увидев два одинаковых тестовых задания сильно задумался бы а стоит ли доверять второму приславшему. Наверняка задание было сделано не ним самим.

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

  3. samsim пишет:

    Очень интереиный пост. Буду ждать новых.

  4. вы можете подписаться на RSS – нашего блога и быть всегда в курсе всех новых событий нашего сайта.

  5. Федор пишет:

    а может этот работодатель мошенник и просто хочет бесплатно получить готовую программу

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

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

  7. Kaylee пишет:

    Remarkable issues here. I’m very happy to see your post. Thank you so much and I am having a look ahead to touch you. Will you kindly drop me a e-mail?

Leave a Reply