Pull to refresh
78
0
Андрей @Goodrone

User

Send message

Идеология и проблемы разработки финансовых систем. Часть 2

Reading time5 min
Views558
В прошлый раз я попытался рассказать о некоторых мелочах, связанных с авторизацией и планировании прав доступа, о которых обычно забывают при планировании структуры финансовой системы.

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

Рассмотрим пример.
Допустим имеется несколько таблиц в базе данных вашей системы. Одна из них — справочник юридических лиц. Вам как разработчику/аналитику необходимо спроектировать функционал для работы с некоторым типом документов. Для примера предположим что вам необходимо разработать функционал для создания и редактирования платежных поручений. Допустим 1 платежное поручение должно иметь следующие поля:

1. уникальный номер
2. дата и время создания
3. дата и время оплаты
4. юридическое лицо (контрагент) которому была произведена оплата
5. сумма
6. тип платежа

Сразу отмечу что почти никогда не стоит связывать уникальный номер документа с id записи в таблице БД. Дело тут вот в чем: пользователи имеют свойство ошибаться. Логика пользователей иногда весьма своеобразна, к примеру, периодически им легче удалить неправильно созданный документ и создать его по новой (особенно это касается новых сотрудников, которые боятся “накосячить”). После подобных действий у вас в системе будет множество пустых “дыр” между номерами документов. Казалось бы мелочь, но любая проверка со стороны “заинтересованных” лиц найдет в этом тайный умысел. (Если хотите реальных примеров, погуглите “Прайм-ТАСС подало в суд на мэрию Москвы”. Вся их доказательная база — номера документов шли по порядку, но в общественном доступе есть только часть из них). Лучше всего, по нашему мнению, вновь создаваемому документу присваивать номер = максимальный уникальный номер в системе по данному типу документов + 1.
Но вернемся к нашему примеру. Обратим внимание на поле №4 — юридическое лицо. Коль скоро у нас имеется справочник юридических лиц, то очевидным является записывать в это поле ссылку на запись в этом справочнике.
А теперь представим себе несколько возможных ситуаций:
1) Платежное поручение было создано в 2009 году. Платеж был произведен ООО “Кровать”. В январе 2010 фирма была переименована в ООО “Стулья”. Получается что если мы откроем форму платежного поручения в конце 2010 года, то увидим что платеж был произведен фирме, которой в 2009 году физически не существовало.
2) Допустим в марте 2010 года произошло слияние ООО “Кровать” и ЗАО “Диваны”, результатом стало ОАО “Диваны и кровати”. Что могут сделать пользователи? А они могут переименовать фирму ООО “Кровать” в ОАО “Диваны и кровати”, а еще они могут переименовать ЗАО “Диваны” в “Диваныи кровати”. Самое интересное начнется при первом же отчете, когда окажется что все платежи между разным юридическим лицами (3мя фактическими и 4мя в базе) перемешались и отличить их могут только люди, которые производили оплату (которые, к сожалению, попали под сокращение штата и уже несколько месяцев не работают в вашей фирме).
Читать дальше →
Total votes 2: ↑2 and ↓0+2
Comments1

33 правила для увеличения Вашей продуктивности (Стив Павлина)

Reading time6 min
Views3.8K
Оригинал: 33 Rules to Boost Your Productivity
Автор: Стив Павлина (Steve Pavlina)
Перевод: Евгений Ефремов

Эвристика — это набор правил, предназначенных для того, чтобы помочь решать вам свои задачи. Когда задача сложна или просто велика, а оптимальное решение неясно, применение эвристических методов поможет вам продвинуться в ее решении, даже если у вас нет четкого видения всего решения целиком.
Предположим, что вашей целью является покорение горы, но ни одна дорога не ведет к вершине. Примером эвристического решения может быть: Двигаться напрямую к вершине до тех пор, пока вы не встретите препятствие, которое не сможете преодолеть. Когда вы встретите подобное препятствие, следуйте вдоль него направо до тех пор, пока не сможете двигаться к вершине снова. Это не самый лучший или самый полный вариант применения эвристики, но во многих случаях он будет нормально работать, и вы достигните вершины.
Эвристика не гарантирует, что вы найдете оптимальное решение, более того, она не гарантирует, что вы найдете хоть какое-нибудь решение. Но для определенного типа задач эвристика бывает весьма полезна. Ее сила в том, что она помогает сдвинуться с мертвой точки, когда вы не можете принять решение, и приступить к действиям. Когда вы начинаете действовать, вы исследуете возможные варианты, что углубляет ваше понимание задачи. И получая больше информации о задаче, вы понемногу повышаете свои шансы найти ее решение. Если вы пытаетесь решить задачу, не зная точно, как это сделать, зачастую вы можете найти решение в процессе. Причем такое, до которого не смогли бы додуматься, не начав действовать. Особенно это справедливо для творческой деятельности, например для разработки программного обеспечения. Там вы часто не знаете, что вы хотите сделать, пока не начнете это делать.
Эвристика имеет множество приложений, одним из моих любимых является применение в личной продуктивности. Эвристика в задачах продуктивности — это набор поведенческих правил (иногда общих, иногда — ситуационных), которые помогают нам делать вещи более эффективно. Вот некоторые из мои любимых:
Читать дальше →
Total votes 35: ↑30 and ↓5+25
Comments28

Библиотека начинающего ООП программиста — ваши советы

Reading time1 min
Views3.7K
Я так понимаю, многие сейчас страдают от неорганизованности знаний. Нахватавшись по верхам и того и этого, не имея базы, основы, пытаешься разбираться с вопросами и проблемами по ходу их возникновения. От этого беспорядочность только увеличивается. Так вот и я — вроде бы программирую, а получается быдлокод.

Решил с этим бороться и начать изучать все заново, по порядку.

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

Основы программирования, основы ООП, создание удобного и расширяемого кода и т.д. и т.п. Движусь, в основном, в сторону PHP и Adobe Flex, но параллельно приходится знать и Javascript и объектно-ориентированные базы данных и C++ и многое другое.

В комментарии приглашаются все, кто может подсказать полезную литературу, сайты, туториалы и FAQ'и. Думаю, что топик окажется полезным для многих людей. А по результатам попытаюсь составить библиотечку «must have».

Ваше слово :)
Total votes 45: ↑39 and ↓6+33
Comments87

Немного из опыта покупок на E-Bay-в основном для москвичей

Reading time8 min
Views24K
Итак, вдохновленный успехом топика – kovalevvalery.habrahabr.ru/blog/43607.html
и многочисленными просьбами тех, кому интересно услышать об опыте покупок на E-bay решил написать данный «материал». Ну заодно и блог одноименный завел…

Сразу оговорюсь, материал не будет претендовать на идеальную полноту изучения вопроса. А только лишь может быть обратит внимание на неявные нюансы, не описанные в многочисленных хэлпах E-bay, или просто вкратце изложит суть вопроса.
Читать дальше →
Total votes 124: ↑121 and ↓3+118
Comments133

Google, удавы и попугаи.

Reading time1 min
Views6.3K
Google знает сколько попугаев в удаве. Жалко, что ёще не разобрался со стопками, мерзавчиками и подобным фольклором.

Upd. 1 кубический попугай в мерзавчиках


 

1 удав = 38 попугаев

    Подробнее о калькуляторе.
Total votes 75: ↑71 and ↓4+67
Comments73

Список команд чата Skype

Reading time6 min
Views691K
...Skype — это дьявольски хитрая программа, написанная бесспорно талантливыми людьми...Крис Касперски

Доброго времени суток!

Skype сейчас я встречаю чаще на компьютерах чем другие IM клиенты, мне он практически заменил icq, вся рабочая переписка ведется в skype, но речь пойдет не о том, что лучше или популярней. Часто бывает так, что участвуешь сразу в нескольких чатах где количество участников превышает 10, что собственно и приводит к тому, что на рабочем столе и в трее постоянно обновляется количество новых сообщений, а также уведомления в виде всплывающих сообщений, а теперь представьте что у вас 3 окна чата с друзьями, 1 с вашим боссом, другой с девушкой — все это в сумме начинает запутывать, отвлекать и порой раздражать. Хотелось бы расставить приоритеты…

Раньше я чаще всего настраивал «политику» уведомлений только через глобальные настройки программы
Случилось так, что я узнал, что в каждом окне чата skype возможно использование команд, например /alertsoff отключит уведомления для конкретного окна чата, соответственно /alertson включит их обратно.
Поискав немного я наткнулся на некое how-to, оказывается у skype чата довольно много текстовых команд, подобие IRC команд. Далее я постарался попробовать все возможные из них на двух имеющихся у меня платформах, как оказалось не все и не везде работает… Прошу под кат.

Читать дальше →
Total votes 186: ↑173 and ↓13+160
Comments79

Визуальный поиск стран и городов

Reading time1 min
Views3K

Знаете ли вы, как выглядит машина вашей мечты? Телефон? Идеальное место отдыха? Часто бывает, что, представляя образ, мы не можем найти его в реальной жизни. И всё потому, что не знаем, как его назвать, будь то город или марка автомобиля.

Мы решили провести эксперимент – сделать поиск «от обратного». С помощью визуального поиска, выбирая изображения, похожие на искомый образ, можно найти  объекты. И для этого не нужно формулировать запросы.

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



Визуальный поиск основан на обычном поиске по картинкам. Основное отличие в том, что запросы задает сама поисковая машина. В течение одной сессии (от выбора первой картинки до конечного результата) задается более 50-ти запросов. С каждым шагом пользователя география поиска сужается на основе высказанных (с помощью выбора картинки) предпочтений.

Экспериментальный поиск был запущен всего неделю назад, но уже сейчас есть интересные результаты: большинство пользователей, ориентируясь только на изображения, выбирают Россию и Германию. А вы уже знаете страну своей мечты?


Лия Карепова и команда поиска по Картинкам

Total votes 47: ↑44 and ↓3+41
Comments23

Тюнинг Firefox для любителей Оперы

Reading time5 min
Views20K
Здравствуйте.
Я являюсь пользователем Оперы уже около 5 лет, но при разрабoтке страниц я пользуюсь Firefox'ом т.к. он предлагает мне более удобные средства для отлова ошибок, валидации и т.п., к тому же это полезно, если каждодневный брaузер и рабочий инструмент различаются.
Но дело в том, что в Файрфоксе при всех его преимуществах, настройки по умолчанию заставляют оперопользователя все время чувствовать себя как в гостях. Я не говорю здесь о интерфейсе, а именно о поведении браузера. Я попытался изменить это и вот шаги которые я предпринял:
UPD: пока писал, то топик так увеличился, что его можно скорее назвать пособием для тюнинга Firefox — загляните внутрь даже если вы не оперщик. Если же вы матерый пользователь FF, то добро пожаловать с вашими уточнениями и комментариями :)
Много текста
Total votes 80: ↑65 and ↓15+50
Comments66

9 статей на тему круглых кнопок

Reading time2 min
Views11K
9 статей на тему круглых кнопок

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

Здесь представлены
9 отличных статей на тему создания кнопок с изменяемой шириной
Total votes 1: ↑1 and ↓0+1
Comments55

Пересборка пакетов для Ubuntu (Debian)

Reading time1 min
Views20K

Думаю, практически все понимают преимущества пакетных менеджеров над установкой при помощи ./configure && make && make install.

На примере недавно появившегося патча для Pidgin я хочу показать, как легко пересобирать пакеты в deb-based дистрибутивах.

Читать дальше →
Total votes 50: ↑45 and ↓5+40
Comments28

Вредная верстка

Reading time9 min
Views74K
Как определить, что сайт сверстан качественно?
Есть много статей о том, как делать хорошо, но совсем нет – о том, как делать не надо, ведь даже валидный и кроссбраузерный сайт может быть сверстан отвратительно.

Из этой статьи вы узнаете:


  • О плохих приемах современной верстки;
  • О том, как даже не будучи профессионалом, за 5 минут определить плохо ли сверстан сайт или нет.


Читать дальше →
Total votes 203: ↑175 and ↓28+147
Comments339

Пристрелите меня, или опять дедлайн.

Reading time4 min
Views4.3K
Не знаю как у вас, а у меня давно исчезла мысль о том, что в работе может не быть авралов. Причин множество: неправильная оценка сложности и задач и сроков для их реализации, задержки утверждения документов или предоставления информации по проекту со стороны заказчика, человеческий фактор. А в итоге получаем неподъемное количество работы на пару со стрессом. Причем, не всегда проблемы могут быть внутренние. Сколько раз мне приходилось наблюдать и участвовать в проектах, в которых все идет по плану. Спокойно и размеренно. Функциональность проработана, все необходимые тесты имеются и пройдены, документация написана. И вот остается день – два до сдачи, и… От заказчика приходит гневное письмо, что он изучил последнюю версию продукта и понял, что все не так и надо изменить то-то и то-то, причем сделать это необходимо в кратчайшие сроки.
Читать дальше →
Total votes 66: ↑61 and ↓5+56
Comments69

Вперед в будущее! Переход с ICQ на Jabber

Reading time6 min
Views38K
*Преамбула*
В связи с глобальной тенденцией перехода умных людей на Jabber, и инертного сопротивления этому переходу людьми, привыкшими к ICQ, было принято решение написать качественную аргументированную статью, о том, почему же все таки стоит сменить средство общения.
Итак, статья:


Для многих из нас ICQ является синонимом слов «общение в интернете», мы используем его по делу и для развлечения, находим с его помощью новых друзей и поддерживаем связь со старыми. За годы использования этой программы накопились сотни контактов в списке и длиннющая история переписки. В общем, все вроде бы устраивает, и идея перейти на что-то новое сразу наталкивается на логичный вопрос: «А зачем? Мне и так неплохо».

Итак, Jabber — это не очередной ICQ-клиент. Это система онлайн-общения нового поколения.
Она пришла на смену устаревшим месенджерам, место которых уже давно на интернет-свалке.

jabber
Почему же общаться в Jabber лучше, чем в ICQ?
Total votes 167: ↑157 and ↓10+147
Comments386

Создание простой MVC-системы на PHP 5

Reading time18 min
Views208K

Предисловие


В этом руководстве Вы узнаете, как построить простую систему по архитектуре MVC (Model-View-Controller, Модель-Отображение-Контроллер) на PHP 5.1 с использованием возможностей библиотеки SPL (Standard PHP Library, Стандартная Библиотека PHP).

Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments116

Когда деревья были большими или о том, с чего все начинали

Reading time4 min
Views2K
Мне часто задают вопрос о том, с чего начать молодому frontend-разработчику? Дабы облегчить свою участь и не перечислять каждый раз множество ресурсов сети, печатных и зданий и общих тезисов, я и написал этот материал.

В первую очередь следует знать, что кроссбраузерная верстка сродни магии. Объясняется это все банальной вещью, которую я озвучу так: ”Все мы ненавидим Internet Explorer!” Таким образом, 90% всей магии сводится к тому, чтобы заставить правильно сверстанный макет корректно отображаться в браузере Internet Explorer всех актуальных версий.

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

Крепкая теоретическая база поможет вам избежать множества неприятностей в практическом изучении верстки гипертекстовых документов. Очень важно получать знания порциями в правильном порядке.
Читать дальше →
Total votes 53: ↑51 and ↓2+49
Comments109

Одно полезное правило для новой жизни

Reading time2 min
Views7.6K
Часто ли вы говорили себе, что «с завтрашнего дня» начнете новую жизнь? Начать что-либо новое с «завтра» выглядит логичным решением. Потому что «сегодня» вы можете жить как хочется, а не как надо «по-новому». Вы думаете, что «сегодня» будете готовится к «завтра» и вам будет легче начать что-то. В конце концов, «сегодня» — уже начавшийся день и «новую жизнь» лучше начать с нового (завтрашнего) дня. Все эти доводы выглядят логично и заставляют вас отложить «новую жизнь» на завтра.
Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments40
1

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity