Заметки Oracle’иста. Выпуск 1
Список возможностей SQL выражения SELECT:
- Существует три фундаментальных концепции выражения SELECT: проекция (projection), выборка (selection) и объединение (joining)
- Проекция относится к ограничению количества выбраных колонок из таблицы
- Выборка относится к извлечению строк из таблицы. Выборка предоставляет возможность налаживания дополнительных ограничений на извлекаемые строки. Эти ограничения позволяют извлекать только те строки, в которых есть необходимость
- Объединение включает связывание двух или более таблиц. Это объединение осуществляется на основе общих атрибутов связываемых таблиц. Обьединение позволяет данным соответствовать третьей нормальной форме
- Безграничное количество комбинация проекций, выборок и объединений представляет собой мощный инструмент для извлечения необходимых данных из реляционных таблиц
- Для получения структурного описания таблицы используйте команду DESCRIBE
- К наиболее используемым типам данных в Oracle относятся: NUMBER, VARCHAR2, DATE, и TIMESTAMP
- Тип данных NUMBER(x,y) подразумевает, что данные могут содержать не более x цифр, и не более y из них могут находиться после запятой
глоссариум ооп: к
Квалификатор (qualifier) – атрибут, однозначно идентифицирующий отдельный целевой объект.
Класс (class) – множество объектов, имеющих общую структуру и общее поведение. Термины класс и тип (но не всегда) являются синонимами. Класс отличается от типа тем, что он концентрируется на классификации структуры и поведения.
Клиент (client) – объект, пользующийся услугами другого объекта, либо выполняя операции над последним, либо ссылаясь на его состояние.
Ключевая абстракция (key abstraction) – класс или объект, являющийся частью словаря предметной области.
Композиция (composition) – полное или частичное отношение, в котором один объект состоит из одного или нескольких других объектов, каждый из которых рассматривается как часть целого.
Компонент (component) – логическая совокупность классов, взаимодействующих вместе для обеспечения набора услуг, предлагаемых посредством интерфейса. Услуги, требуемые компонентом, запрашиваются с помощью соответствующих интерфейсов. Кроме того, компонент может состоять из других компонентов и быть вложенным в другой компонент.
Конкретизация (инстанциирование) (instantiation) – процесс подстановки параметров шаблона обобщенного или параметризированного класса для создания класса, который может иметь экземпляры.
Конкретный класс (concrete class) – класс, реализация которого является завершенной и который, благодаря этому, может иметь экземпляры.
Конструктор (constructor) – операция, создающая объект и/или инициализирующая его стостояние.
Контейнерный класс (container class) – класс, экземпляры которого содержат другие объекты. Контейнерный класс может описывать как однородные (когда все объекты, включенные в коллекцию, относятся к одному и тому же классу), так и неоднородные совокупности (когда объекты, включенные в коллекцию, могут относиться к разным классам, хотя все они обладают свойствами общего суперкласса). Контейнерные классы часто реализуются с помощью параметризированных классов, в которых класс объектов, содержащихся в контейнере, задается определенным параметром.
Кооперация (collaboration) – процесс, в котором несколько элементов модели взаимодействуют для того, чтобы обеспечить определенное взаимодействие верхнего уровня.
jQuote №1
В главе 4 книги Рефакторинг Мартин Фаулер написал следующее.
Если обратить внимание на потраченное разработчиками время, можно заметить, что написание кода на самом деле составляет небольшую его часть. Некоторое время тратится на постановку задачи, некоторое – на проектирование, но большая его часть уходит на отладку. Каждый читатель может вспомнить долгие часы отладки (часто до глубокой ночи). Любой разработчик может рассказать историю об ошибке, исправление которой потребовало целого дня (или даже больше). На самом деле много времени для исправления ошибки не нужно. А вот найти ошибку – совсем другое дело. Не забывайте, что после исправления одной ошибки всегда существует вероятность появления другой, которая остается незаметной очень долго. И ещё больше времени потребуется на ее обнаружение.
Новый релиз Apache Wicket 1.4
Находясь в больничном отпуске, довольно закономерным является факт прочтения различного рода литературы, в том числе и знакомство с новыми технологиями, фреймверками и т.п., в связи с чем InfoQ стал стартовой страницей моего любимого браузера. Вода-водой, а переходить нужно к сути: признаюсь, с викетом никогда раньше работать не приходилось, но услышав от девелоперов больше позитивных поинтов чем негативных, всё-таки решил с ним познакомиться. Погуглив страниц десять, я не только нашёл домашнюю страницу фреймверка
)) , но и узнал о том, что совсем недавно был анонсирован новый релиз такой замечательной плюшки, как Apache Wicket. С чем с вами дорогие читатели и решил поделиться. Более детальную информацию о релизе читаем здесь.
P.S. В то время, как я знакомлюсь с этим фреймверком (пост-репорт будет обязательно), хотелось бы узнать вьюпоинт тех девелоперов, которым с ним уже работать приходилось. В чем плюсы? В чем минусы? Какие приемущества и недостатки перед другими аналогичными фреймверками?
Google выбирает Jetty для App Engine
Google App Engine изначально использовал Apache Tomcat в качестве контейнера сервлетов, который в конечном итоге был заменён на Jetty. Это событие породило ряд дискуссий в сообществах программистов, так как довольно интересным остается следующий вопрос – по какой причине этот переход был осуществлён ? Ответы на данный вопрос даёт InfoQ (кликаем сюда).
