Показаны сообщения с ярлыком PJP. Показать все сообщения
Показаны сообщения с ярлыком PJP. Показать все сообщения

вторник, 8 марта 2011 г.

[PGP]: XML API Internals

XML API Internals

вторник, 15 июня 2010 г.

[PJP]: Google Developers - Numbers Everyone Should Know

From "Google: Designs, Lessons and Advice from Building Large Distributed Systems":
Numbers Everyone Should Know

L1 cache reference ------------------------- 0.5 ns
Branch mispredict --------------------------- 5 ns
L2 cache reference ------------------------- 7 ns
Mutex lock/unlock --------------------------- 25 ns
Main memory reference ------------------- 100 ns
Compress 1K bytes with Zippy ----------- 3,000 ns
Send 2K bytes over 1 Gbps network ---- 20,000 ns
Read 1 MB sequentially from memory --- 250,000 ns
Round trip within same datacenter ------ 500,000 ns
Disk seek ------------------------------------- 10,000,000 ns
Read 1 MB sequentially from disk -------- 20,000,000 ns
Send packet CA->Netherlands->CA ----- 150,000,000 ns

четверг, 10 июня 2010 г.

[PJP]: Broker vs. Brokerless

Broker vs. Brokerless

Table of Contents
- Introduction
- Broker
- No Broker
- Broker as a Directory Service
- Distributed broker
- Distributed directory service
- Conclusion

понедельник, 23 ноября 2009 г.

PJP: Parallel/Concurrent GC

Небольшое замечание по сложившейся терминологии для описания типа GC.
Parallel - значит представляет собой несколько ПАРАЛЛЕЛЬНЫХ потоков. Т.е. сам уборщик мусора состоит из нескольких потоков, которые все вместе лопатят кучу.
Concurrent - значит работает ОДНОВРЕМЕННО с потоками пользователя. Т.е. не требуется делать паузу всей системы(stop-the-world).

Как видно, понятия совершенно независимые. Т.е. каждая конкретная реализация уборщика может обладать этими свойствами независимо.

воскресенье, 22 ноября 2009 г.

PJP: Сложные Системы и архетип Смерти

Профессионально написанная система не только хорошо работает в стандартных режимах, но также корректно переносит всякого рода переходные режимы:
- пуск
- останов
- пауза
- истощение ресурсов
- backup
- пуск после сбоя

Фактически, профессионализм высокого уровня заключается в одновременном рассмотрении проектируемых/реалируемых систем с различных сторон. Жизненный цикл - одна из таких сторон.

Далее вас ожидает несколько постов посвященных таинству Смерти в Java.

понедельник, 12 октября 2009 г.

PJP: Spring (Пн, 12окт)

Рекомендую IoC-контейнер Spring.
- ключевая статья Мартина Фаулера "Inversion of Control Containers and the Dependency Injection pattern" обясняющая зачем все это.
- документация по Spring(просмотрите хотя бы *картинки, *примеры, *справа в рамочках замечания из Chapter 3. The IoC container)

P.S. Знание Cпринга - уже гарантирует работу, а понимание того КАК он работает - хорошую:)

PJP: Р.Мартин. Быстрая разработка программ (Пн, 12окт).

* принцип персональной ответственности
Для использование одной функциональноcти достаточно использования одного класса (хотя реализовываться может с использованием многих, [скажем это класс - Facade]) + у одного класса - одна функциональность (а не больше).

понедельник, 5 октября 2009 г.

PJP: GRASP Patterns: Pure Fabrication

GRASP(General Responsibility Assignment Software Patterns) patterns described by Craig Larman in his book:
Applying UML and Patterns, 3ed.
Применение UML 2.0 и шаблонов проектирования

Книгу я бы не советовал читать, вода для будущих менеджеров. И паттерны там не кодирования, а распределения ролей:
  • Information Expert
  • Creator
  • Controller
  • Low Coupling
  • High Cohesion
  • Polymorphism
  • Pure Fabrication
  • Indirection
  • Protected Variations
Но вот термин хороший - Pure Fabrication (Читая Синтетика), хорошее название для классов типа WritePermission, TransactionManager, PriorityInverter. Короче говоря, для антонима Entity. Класс не имеющий никакого двойника в реальном мире.

PJP: словарь: Bean vs Entity

Bean - определяется по форме. Entity - по содержанию.
Java Bean - не путать с EJB и Web beans.
---
Bean(Java Bean): имеет свою страницу на САНе -> тут, скачать спеку можно -> тут, tutorial -> тут.
Если совсем кратко - это класс
- имеющий публичный конструктор без аргументов
- доступ к полям обеспечивается через getter/setter
Entity: класс в той или иной степени соответствующий сущности (не процессу, не роли, не ...) реального мира.
---
Пример Bean and Entity:

PJP: jcp.org

Абсолютное большинство стандартов Java разрабатывается сообществом JCP (jcp.org, Java Community Process) в виде JSR (Java Specification Requests).
Все JSR-ки в формате pdf можно скачать отсюда.
Пример для JSP:
JavaServer Pages 1.2 (JSR 53)
JavaServer Pages 2.1 (JSR 245)

JSR - это основной источник информации по предмету. Зачастую написаны достаточно легко. Снабжены примерами.

PJP: Code Conventions for the Java Programming Language

Code Conventions for the Java Programming Language
Документ от САНа, соглашение о форматировании, наименовании, оформлениии кода:
- Download HTML (zip, ~62K)
- Download PDF (~127K)

Новые тематики: PJP, Matlab, GPU

Начинаем дополнительные публикации по темам PJP(Professional Java Programming), Matlab, GPU (Graphics Processing Unit)
По PJP буду писать я, Головач Иван.
По Matlab буду писать я, Головач Иван. Подключится(надеюсь) к.т.н. Колупаев Игорь Николаевич, специалист по металлофизике, бооольшой любитель Матлаба.
По GPU пока буду писать я, Головач Иван. Возможно найду спеца по этой тематике.