Re[3]: Про тестовое задание. Попинайте пожалуйста.
От: Handie  
Дата: 04.09.12 12:18
Оценка: +2
P>а фраза выше говорит о твоих знаниях
P>Про type-rich programming, слыхал? http://habrahabr.ru/post/144334/

О да, конечно. Надо создавать типы Day, Month, Year, Minute, Second, Millisecond, Microsecond, Nanosecond — а то не дай бог какой товарищ сложит дни с минутами.

TimeInterval(Year y, Month m, Day d, Second s, Millisecond m, Microsecond ms, Nanosecond n) {
...
}

Типобогатый код:

Year y = new Year(2012);
Month m = Month::September;
Day d = new Day(10);
Second s = new Second(30);
Millisecond m = new Millisecond(254);
TimeInterval interval = new TimeInterval(y, m, d, s, m);



Вот в unix конечно-же идиоты, сделали time_t в секундах с 1 января 1970 года.

А пост юморной, это сколько наворотов ради "типобогатства".
Re[3]: Про тестовое задание. Попинайте пожалуйста.
От: Vzhyk  
Дата: 04.09.12 12:19
Оценка:
04.09.2012 14:42, Piko пишет:

> Про type-rich programming, слыхал? http://habrahabr.ru/post/144334/

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

> H>Keep it simple stupid еще никто не отменял. Если отрезок между двумя

> датами отлично определяется double, то нефиг придумывать универсальный
> супертип с блэеджеком и шлюхами
Уже давно отменили, чему примером являются местные обсуждения.

> void some_func(double date,double interval);

> void some_func(Date,DateInterval);
> что надёжней?
Первое, по причине простоты и меньшего количества кода и следовательно
меньшего количества ошибок.

З.Ы. Да я знаю, что сейчас ты начнешь фантазировать о возможных
проблемах и совместными усилиями простой вопрос мы доведем до
сферического коня в вакууме. Я тебя в оном не поддержу.
Posted via RSDN NNTP Server 2.1 beta
Re[4]: Про тестовое задание. Попинайте пожалуйста.
От: Piko  
Дата: 04.09.12 12:28
Оценка:
Здравствуйте, Handie, Вы писали:

P>>а фраза выше говорит о твоих знаниях

P>>Про type-rich programming, слыхал? http://habrahabr.ru/post/144334/
H>О да, конечно. Надо создавать типы Day, Month, Year, Minute, Second, Millisecond, Microsecond, Nanosecond — а то не дай бог какой товарищ сложит дни с минутами.

H>TimeInterval(Year y, Month m, Day d, Second s, Millisecond m, Microsecond ms, Nanosecond n) {

H> ...
H>}

не надо драматизировать

H>
H>Year y = new Year(2012);
H>


дядя, а зачем вообще new? Или ты из этих, жабашарперов?

H>Вот в unix конечно-же идиоты, сделали time_t в секундах с 1 января 1970 года.


time_t появился во времена C, для конкретных типов никакой инкапсуляции не было.
напрямую трогать time_t как-бы нельзя, так как implementation defined

H>А пост юморной, это сколько наворотов ради "типобогатства".


чей пост? Страуструпа?
Re[5]: Про тестовое задание. Попинайте пожалуйста.
От: Handie  
Дата: 04.09.12 12:33
Оценка:
P>time_t появился во времена C, для конкретных типов никакой инкапсуляции не было.
P>напрямую трогать time_t как-бы нельзя, так как implementation defined

А пацаны то и не знали!
Re[4]: Про тестовое задание. Попинайте пожалуйста.
От: Piko  
Дата: 04.09.12 12:34
Оценка:
Здравствуйте, Vzhyk, Вы писали:

>> Про type-rich programming, слыхал? http://habrahabr.ru/post/144334/

V>Ужас. Налицо явное переусложнение простой задачи. Вместо конкретного
V>решения задачи, человек предлагает обобщенную реализацию для чего-то
V>несуществующего.

Какой человек? Страуструп?

V>Вообще, описываемые автором проблемы всегда решались простым

V>комментарием, если была такая необходимость.

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

>> void some_func(double date,double interval);

>> void some_func(Date,DateInterval);
>> что надёжней?
V>Первое, по причине простоты и меньшего количества кода и следовательно
V>меньшего количества ошибок.

из меньшего количество кода, не следует меньшее количество ошибок

V>З.Ы. Да я знаю, что сейчас ты начнешь фантазировать о возможных

V>проблемах и совместными усилиями простой вопрос мы доведем до
V>сферического коня в вакууме. Я тебя в оном не поддержу.

да нет же, зачем метать бисер перед свиньями
Re[6]: Про тестовое задание. Попинайте пожалуйста.
От: Piko  
Дата: 04.09.12 12:46
Оценка:
Здравствуйте, Handie, Вы писали:

P>>time_t появился во времена C, для конкретных типов никакой инкапсуляции не было.

P>>напрямую трогать time_t как-бы нельзя, так как implementation defined
H>А пацаны то и не знали!

и чем предложенный топикстартером конкретный тип представляющий интервал, сохраняющий свои инварианты, идеологически отличается от time_t который нельзя трогать голыми грязными руками?
Re[5]: Про тестовое задание. Попинайте пожалуйста.
От: Handie  
Дата: 04.09.12 12:48
Оценка: :))
P>Какой человек? Страуструп?

Страуструп из монстройдального языка C++ сделал еще более страшного монстра. На пару с Александреску они создали язык, который может освоить только прошедший Путь Джедая и обретший Силу.

При программировании на PHP, JavaScript и т.д. люди пишут код, на С++ же часто демонстрируют силу духа и степень просветления. Я вот удивляюсь — в динамических языках нет адских шаблонов и метапрограммирования но почему-то это не только не мешает писать код, но и упрощает задачу.
Re[6]: Про тестовое задание. Попинайте пожалуйста.
От: Piko  
Дата: 04.09.12 12:56
Оценка: +1
Здравствуйте, Handie, Вы писали:

H>При программировании на PHP, JavaScript и т.д. люди пишут код, на С++ же часто демонстрируют силу духа и степень просветления.


ни разу не видел такого в production

H>Я вот удивляюсь — в динамических языках нет адских шаблонов и метапрограммирования но почему-то это не только не мешает писать код, но и упрощает задачу.


а почему ты вообще запел про шаблоны? это какая-то попная боль?
Re[7]: Про тестовое задание. Попинайте пожалуйста.
От: _FRED_ Черногория
Дата: 04.09.12 12:59
Оценка:
Здравствуйте, Piko, Вы писали:

P>>>time_t появился во времена C, для конкретных типов никакой инкапсуляции не было.

P>>>напрямую трогать time_t как-бы нельзя, так как implementation defined
H>>А пацаны то и не знали!

P>и чем предложенный топикстартером конкретный тип представляющий интервал, сохраняющий свои инварианты, идеологически отличается от time_t который нельзя трогать голыми грязными руками?


Как минимум тем, что аналога требуемого мной типа обычно не бывает. Я _например_ прошу тип, который позволяет описать отрезок времени меду двумя датами, например период жизни кого-то, или время прохождения воиской службы. Одним скаляром это нельзя выразить. Можно выразить парой. собственно рассказать, как сделать такую пару, что бы она органично выгляде бы на фоне дотнета я и прошу.
Help will always be given at Hogwarts to those who ask for it.
Re[8]: Про тестовое задание. Попинайте пожалуйста.
От: Piko  
Дата: 04.09.12 13:02
Оценка:
Здравствуйте, _FRED_, Вы писали:

P>>>>time_t появился во времена C, для конкретных типов никакой инкапсуляции не было.

P>>>>напрямую трогать time_t как-бы нельзя, так как implementation defined
H>>>А пацаны то и не знали!
P>>и чем предложенный топикстартером конкретный тип представляющий интервал, сохраняющий свои инварианты, идеологически отличается от time_t который нельзя трогать голыми грязными руками?

_FR>Как минимум тем, что аналога требуемого мной типа обычно не бывает. Я _например_ прошу тип, который позволяет описать отрезок времени меду двумя датами, например период жизни кого-то, или время прохождения воиской службы. Одним скаляром это нельзя выразить. Можно выразить парой. собственно рассказать, как сделать такую пару, что бы она органично выгляде бы на фоне дотнета я и прошу.


то есть ты предлагаешь конкретный тип, который сохраняет свои инварианты, да?
а теперь перечитай выделенное
Re[9]: Про тестовое задание. Попинайте пожалуйста.
От: Handie  
Дата: 04.09.12 13:09
Оценка:
P>то есть ты предлагаешь конкретный тип, который сохраняет свои инварианты, да?
P>а теперь перечитай выделенное

Совершенно троллинговая и никчемная дискуссия. Ну, у меня настроение было потроллить. Из мухи раздули слона.
Re[10]: Про тестовое задание. Попинайте пожалуйста.
От: Piko  
Дата: 04.09.12 13:11
Оценка:
Здравствуйте, Handie, Вы писали:

H>Совершенно троллинговая и никчемная дискуссия. Ну, у меня настроение было потроллить. Из мухи раздули слона.


такая же никчёмная как твоя реализация переворота строки
Re[11]: Про тестовое задание. Попинайте пожалуйста.
От: Handie  
Дата: 04.09.12 13:14
Оценка: :)
P>такая же никчёмная как твоя реализация переворота строки

Чувак, самоутверждайся в другом месте.
Re[9]: Про тестовое задание. Попинайте пожалуйста.
От: _FRED_ Черногория
Дата: 04.09.12 13:23
Оценка:
Здравствуйте, Piko, Вы писали:

P>>>>>time_t появился во времена C, для конкретных типов никакой инкапсуляции не было.

P>>>>>напрямую трогать time_t как-бы нельзя, так как implementation defined
H>>>>А пацаны то и не знали!
P>>>и чем предложенный топикстартером конкретный тип представляющий интервал, сохраняющий свои инварианты, идеологически отличается от time_t который нельзя трогать голыми грязными руками?

_FR>>Как минимум тем, что аналога требуемого мной типа обычно не бывает. Я _например_ прошу тип, который позволяет описать отрезок времени меду двумя датами, например период жизни кого-то, или время прохождения воиской службы. Одним скаляром это нельзя выразить. Можно выразить парой. собственно рассказать, как сделать такую пару, что бы она органично выгляде бы на фоне дотнета я и прошу.


P>то есть ты предлагаешь конкретный тип, который сохраняет свои инварианты, да?

P>а теперь перечитай выделенное

Я не понимаю, что значит "конкретный тип, который сохраняет свои инварианты" потому что не понимаю что значит "свои инварианты", но я не предлагаю "тип представляющий интервал". Тип что я прошу сравнивать с time_t вообще не корректно, именно это я и хотел сказать.
Help will always be given at Hogwarts to those who ask for it.
Re[10]: Про тестовое задание. Попинайте пожалуйста.
От: Piko  
Дата: 04.09.12 13:35
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Я не понимаю, что значит "конкретный тип, который сохраняет свои инварианты" потому что не понимаю что значит "свои инварианты",


что такое инварианты класса знаешь?

_FR>Тип что я прошу сравнивать с time_t вообще не корректно, именно это я и хотел сказать.


почему не корректно? некоторые части вполне корректно, например time_t какая-никакая, хотя бы мнимая, инкапсуляция пристуствует
Re: Про тестовое задание. Попинайте пожалуйста.
От: MozgC США http://nightcoder.livejournal.com
Дата: 04.09.12 13:41
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Во время собеседования интересно выявить у кандидата умение использовать имеющиеся знания и навыки. По-моему, то, на сколько человек умеет пользоваться тем, что знает гораздо важнее (в профессиональном плане и долгосрочной перспективе) …широты, так сказать, знаний, которые "лежат без дела" (или используются не по назначению, что суть одно и то же). Позиция, конечно, спорная (велкам).


Согласен. Я вот за собой замечаю нехорошую вещь: вот вроде есть уже и относительно немаленький опыт, и теоретические знания, читал разные умные книги и т.д. и т.п., а на практике бывает что в реальной работе об этом забываешь — напишешь код, и если потом критически на него посмотреть, то можно найти несколько "запашков".

_FR>Суть задачи была в следующем: требовалось спроектировать элементарный, простейший, практически примитивный тип данных самого "широкого профиля" (как будто он будет добавлен в mscorlib на ровне с Int32, String, DateTime и т.п.). Например, тип данных, который представляет из себя отрезок времени между двумя датами (двумя точками на временной оси). По большому счёту, даже код показывать не нужно, достаточно рассказать, каким этот тип должен быть — что в нём было бы полезно учесть, что нужно было бы сделать, что не нужно.


Мне было бы интересно.

_FR>На сколько задание адекватное, то есть соответствует поставленным целям?


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

_FR>На сколько реально или даже должно выполнить его "тут же" за пятнадцать скажем минут (напоминаю, писать реализацию даже не обязательно, главное — обозначить решаемые проблемы, указать способ решения, не забыть перечислить все необходимые вещи, которые вы считаете обязательными).


Вот ограничение по времени лично меня бы напрягло, я бы наверное начал нервничать, если бы мне заикнулись о временных рамках. Имхо лучше не делать ограничений по времени, а наоборот расслабить человека, типа "ну вы пока начинайте думать, не торопитесь, а я пойду чайку нам заварю". Ведь лучше если человек подумает побольше, и выдаст более качественный результат, чем уложится в 15 минут и выдаст сырой недодуманный вариант? Ну и лучше дать человеку компьютер, мне бы было удобнее сразу в коде начинать набросок делать, может даже начал бы с теста.
Re[11]: Про тестовое задание. Попинайте пожалуйста.
От: _FRED_ Черногория
Дата: 04.09.12 13:41
Оценка: -1
Здравствуйте, Piko, Вы писали:

_FR>>Я не понимаю, что значит "конкретный тип, который сохраняет свои инварианты" потому что не понимаю что значит "свои инварианты",

P>что такое инварианты класса знаешь?

Я не понимаю, как какой-то тип может сохранять _чужие_ инварианты. Но к интересующему меня вопросу это никакого от ношения не имеет. Я лишь на всякий случай уточнил задачу, потому что мне показалось, что вы не совсем верно её поняли.

_FR>>Тип что я прошу сравнивать с time_t вообще не корректно, именно это я и хотел сказать.

P>почему не корректно? некоторые части вполне корректно, например time_t какая-никакая, хотя бы мнимая, инкапсуляция пристуствует

В таком разрезе ("некоторые чести", "инкапсуляция") любые два типа сравнивать корректно даже в разных языках/концепциях/системах но ни к обсуждаемому вопросу, ни к моему уточнению это отношения не имеет.
Help will always be given at Hogwarts to those who ask for it.
Re[3]: Про тестовое задание. Попинайте пожалуйста.
От: MozgC США http://nightcoder.livejournal.com
Дата: 04.09.12 13:44
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Как можно браться за проектирование каких-то репозитариев/визиторов/контролов/билдеров и прочего (сейчас у любого в резюме сказано про паттерны проектирования) не умея проектировать …гвоздь?


Имхо вот так вот и можно. Мне кажется что качественно сделать такой тип может быть сложнее и может требовать от человека больше знаний и опыта, чем использовать какой-то известный паттерн.
Re[5]: Про тестовое задание. Попинайте пожалуйста.
От: Vzhyk  
Дата: 04.09.12 13:54
Оценка:
04.09.2012 15:34, Piko пишет:

> Какой человек? Страуструп?

Ссылка не на Страуструпа у тебя, это раз. Два, Страуструп еще тот теоретик.

> ну так ты видео посмотри. просрали многолимонный аппарат из-за такой вот

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

> V>Первое, по причине простоты и меньшего количества кода и следовательно

> V>меньшего количества ошибок.
>
> из меньшего количество кода, не следует меньшее количество ошибок
Перечитай еще раз.
Posted via RSDN NNTP Server 2.1 beta
Re[6]: Про тестовое задание. Попинайте пожалуйста.
От: Vzhyk  
Дата: 04.09.12 13:59
Оценка:
04.09.2012 15:48, Handie пишет:

> Страуструп из монстройдального языка C++ сделал еще более страшного

> монстра.
Не такой он и страшный, если не извращаться с ним.

> При программировании на PHP, JavaScript и т.д. люди пишут код, на С++ же

> часто демонстрируют силу духа и степень просветления.
Это глупость пишущих. Им дали в руки мощнейший инструмент и они его
стали использовать для пенисометрии, причем осложняя оным жизнь себе и
сильно.
Это прекрасно видно по оному форуму, на собеседованиях не по С++ (пока
туда не добрались укушенные Александреску) ищут тех, кто будет решать
задачи, а по С++ тех, у кого больше.
Posted via RSDN NNTP Server 2.1 beta
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.