1. Присоски — супер. Отлично подойдут.
2. Моя вина. Плохо объяснил, что требуется. Имелось в виду, что не очень ясно, как плотно хранить образцы (с минимальным зазором). Не так: ---/-----/-----/---. А так: -/-/-.
3. Стелажи с удлиняемыми направляющими тоже хорошая мысль.
По условию, пластинки — специальным способом (чем-то типа ламината) упакованные банкноты/образцы подписей и иные «коллекционные» образцы документов малой площади.
Спасибо! Это интересно, правда, не уверен, что нам подойдёт. Требуется хранить пластинки толщиной 0.1 — 0.7мм. Материалы будут тоже различные: картон, фольга, возможно, тонкий металл. Количество хранимых единиц будет порядка 10.000 — 100.000.
В связи с этим, возникают вопросы:
— Какого рода манипуляторы тут можно применять? (Пластины требуют весьма бережного обращения.)
— Как хранить пластины компактно?
— Как обеспечить расширяемость хранилища (модульность)?
Ещё как вариант, ASUS Eee PC 1005PE. Однако в режиме wifi не потянет и 8 часов. Если интересно, могу замерить сколько фактически работает при небольшой яркости + wifi. Вопрос о наличии в продаже, правда, остаётся открытым.
Вообще, исключения придуманы не для того, чтобы передавать информацию о каком-то частном случае штатного завершения метода. Кроме того, они действительно «более тяжёлые». Так что однозначно return null, если только ненахождение значения не является неожиданностью/«аварией»/исключительной ситуацией.
Я не понимаю, зачем Вам нужны краткие описания. Если бы код был ясен, описания не требовались бы. Если код не ясен, то надо добиваться его прояснения, причём комментарии далеко не самый лучший инструмент. Я бы думал о переименовании/переписывании методов и классов в Вашем случае.
На нашем проекте используется подход с embedded resorce. Однако тут есть проблема, которую мне не удалось обойти: если в нашей библиотеке, которая была «вшита» в ресурсы .exe-файла, происходит исключение, то стек-трейс не показывает конкретную строку кода «вшитой» библиотеке, которая является источником проблемы. Вместо этого номер строки известен только у вызывающей сборки, т.е. exe-сборки в нашем случае.
Спасибо за источники! Только жаль, что никто не посоветовал именно «заточенных» упражнений, чтобы можно было для начала освоить спектр подходов к решению различных задач.
В целом, Вы очень-очень правы. Но, например, у меня такие проблемы при работе с ПО, которые я не смогу сам решить. Или это потребует столько времени, что решение станет уже неактуальным. (Например, мне бы очень хотелось расширить язык C#: добавить макросы и некоторые новые ключевые слова.) Не верю, что смог бы реализовать.
Бывают случаи, когда мне удаётся найти такие осмысленные задачи, которые решаемы, но это происходит нечасто. Последний на моей памяти минипроект делал для жены года полтора назад. Ей на работе требовалось агрегировать и сверять табели учёта рабочего времени, полученные из нескольких разных источников. Написал программку очень быстро, а сопровождал (поддержка, багфиксы) полгода. Затем баги, вроде, кончились. Теперь так и работает.
С тех пор проекта для решения задачи «из жизни», к сожалению, не нашлось.
Я бы сказал, что Scala была в мире .NET. К сожалению, большинство знакомых дотнетчиков, интересовавшихся вопросом, сходятся на том, что Scala и Scala на .NET находятся на сильно разных уровнях (дотнетовая сильно отстаёт).
Спасибо всем, кто уже ответил на вопрос. Судя по тому, какие разные суждения выражены, я понимаю, что тема, действительно, поднята не очень простая. В связи с этим перечитаю, что говорится в code complete, а также буду рад узнать ещё какие-либо авторитетные источники.
Ну, Debug.Assert() вообще автомагически отключается в дотнетах:
By default, the Debug.Assert method works only in debug builds. Use the Trace.Assert method if you want to do assertions in release builds.
Так что я особо насчёт этого не переживаю.
Пугает каша в коде. Наверняка я просто неправильно использую. В общем, ожидаю ещё комментариев. В идеале увидеть код из какого-нибудь не очень маленького проекта, где assert'ы гармонично вписаны.
Да, Вы говорите именно о тех assert'ах. В .NET'ах это Debug.Assert() или Trace.Assert(). В C++, кажется, просто функция assert из assert.h.
Я просто не понимаю, когда их использовать. Как только пробую их применять, это сводится к втыканию их всюду. Код становится кашей. Кроме того, я полагаю, что ряд assert'ов можно описать как контракт. Ну и так далее. Хотел бы услышать что-то развёрнутое. Так как нет у меня гуру/наставника в прямом доступе, а проблему я ощущаю не первый день…
Виноват. Ошибался. Жена (HR+кадровик) сказала, что только для граждан Белоруссии упрощёнка при приёме (никаких дополнительных документов не требуется).
2. Моя вина. Плохо объяснил, что требуется. Имелось в виду, что не очень ясно, как плотно хранить образцы (с минимальным зазором). Не так: ---/-----/-----/---. А так: -/-/-.
3. Стелажи с удлиняемыми направляющими тоже хорошая мысль.