Перейти к публикации
  • Сейчас на странице   Всего пользователей: 1   (0 пользователей, 1 гость)

Hed-kun

Программирование Т. 5

Рекомендованные сообщения

в mysql кто-то шарит? :trollface:

я


javascript:void(0);

Поделиться сообщением


Ссылка на сообщение
Гость JUSE

уже разобрался

Поделиться сообщением


Ссылка на сообщение

кто шарит подскажите, в 3-ех уровневой архитектуре

data access layer - соеденение с бд методы для (insert, delete,update,select)

 

в бизнесс логике - методы для процедур транзакицй и тд и параметры для этих процедур уже идут с UI ?

 

или все совсем не так ?


 

 

trollgentleman.gif

131c75b37c8e.gifnukanuka.gifyep.gif

Поделиться сообщением


Ссылка на сообщение
(изменено)

кто шарит подскажите, в 3-ех уровневой архитектуре

data access layer - соеденение с бд методы для (insert, delete,update,select)

 

в бизнесс логике - методы для процедур транзакицй и тд и параметры для этих процедур уже идут с UI ?

 

или все совсем не так ?

UI это вообще отдельный слой.

 

дата аксес лайер - тупо абстракция для доступа к данным. путем создания классов для определенных данных (Book, Order, Invoice, Customer) и различных методов, которые тебе нужны. Не важно как ИМЕННО эти методы будут доставать данные, главное что они и ТОЛЬКО они имеют непосредственный доступ к самой базе данных. внутри, чаще всего, используют селекты, хуекты, инсерты и т.д. Здравая логика подсказывает, зачем дублирование сущностей? Но это уже другая тема.

 

UI layer - классы, которые отвечают за прорисовку окон, кнопочек и т.д. Так же обработка нажатий, кликов. Все что связано с ИНТЕРФЕЙСОМ.

 

 

Ну а бизнес логика это четкие модели поведения. Нажал купить, бизнес логика аутенфицирует юзера, считает какиенибудь скидки и передает эстафету дата аксес лейеру "сохрани заказ, такой то юзер, такой то товар, такая то сумма"

Как то так


Изменено пользователем Обязательное_поле

Поделиться сообщением


Ссылка на сообщение

дал - достает и сохраняет данные

блл - выполняет логические преобразования и проверки и пропихивает уже точно безопасные данные из юи в дал и наоборот.

а юи знает лишь как получить из блл и показать, а потом отправить в блл результат.

 

 

и чтобы не ебать себе мозги, сущности лучше вытащить и юзать во всех трех слоях, а не только в нижнем.


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

примерно ясно,

еще тогда один вопрос.

на форме есть таблица мне в нее нужно поместить например всех сотрудников. их обрабатывать по идее не надо,

получается функция в БЛ просто делает запрос с ДАЛ уровня и к примеру помещает полученные данные в таблицу?

 

// UI

btnClick()

{

BL.GetAllEmployee();

}

 

//BL

 

DataTable GetAllEmployee()

{

return DAL.ExecuteSElect();

}

//DAL

 

DataTable ExecuteSelect()

{

//bla bla bla

Adapter.Fill(_datatable);

return _datatable;

}


 

 

trollgentleman.gif

131c75b37c8e.gifnukanuka.gifyep.gif

Поделиться сообщением


Ссылка на сообщение

Какой знакомый паттерн :trollface:

Правда у меня гуй через раз вызывал методы то из базы, то из "типа" БЛ. Оба были сделаны статичесими классами :D

Поделиться сообщением


Ссылка на сообщение

ну в общем да, блл здесь будет просто транзитом в таком случае, если данные уже в нужном виде в базе лежат.

 

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

 

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

 

А если статикой, то все прошьется намертво в дллках


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

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

 

А если статикой, то все прошьется намертво в дллках

это я знаю, просто целью было сделать максимально просто, быстро + без перспектив "развития"

Поделиться сообщением


Ссылка на сообщение

Фикс двапоевского чата для оперы 12.х

// ==UserScript==
// @id    Prodota-chat
// @name	 Prodota-chat
// @version  1.0
// @encoding    utf-8
// @author   Двапой
// @include  http://prodota.ru/*
// @run-at   document-end
// ==/UserScript==
(function () {
  if(window._appended) return;
  document.ready = function() {
   var script = document.createElement('script');
   script.src = 'http://pd-chat.nodejitsu.com/append.js';
   document.body.appendChild(script);
   window._appended = true;
  }
}());

Поделиться сообщением


Ссылка на сообщение

Поясните за обжектив С, кто нибудь упарывал?

Какие подводные камни?

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

Поделиться сообщением


Ссылка на сообщение

Поясните за обжектив С, кто нибудь упарывал?

Какие подводные камни?

буква C там от балды


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

ObjectiveC это для мазохистов.

Один из самых раковых языков программирования из всех, которые я пробовал.

Из статически типизированных точно топ1 по уровню рака.

В общем не рекомендую. А если уж припёрло пейсать для iOS, это можно делать и на обычном С++ (файлики только надо создавать не с расширением m, а с расширением mm). А ObjectiveC юзать только в UI-прослойке (там без него никак), чтобы по минимуму в какашках плавать.

Соответственно и библиотечки искать, отдавая предпочтение написанным на чистом С или С++.

 

Да, мак нужен или макбук, на виртуалке это вообще стрёмно, хотя в принципе можно, я так раковал некоторое время.

 

примерно ясно,

еще тогда один вопрос.

на форме есть таблица мне в нее нужно поместить например всех сотрудников. их обрабатывать по идее не надо,

получается функция в БЛ просто делает запрос с ДАЛ уровня и к примеру помещает полученные данные в таблицу?

 

// UI

btnClick()

{

BL.GetAllEmployee();

}

 

//BL

 

DataTable GetAllEmployee()

{

return DAL.ExecuteSElect();

}

//DAL

 

DataTable ExecuteSelect()

{

//bla bla bla

Adapter.Fill(_datatable);

return _datatable;

}

это ты датасеты используешь ? если да, то могу сказать тебе, что датасеты не пригодны для описываемой тобой трехзвенки, поскольку они предназначены как раз для прямого перекидывания данных на формочку и обратно. и если тебе нужно предварительно подготовить свои объекты с данными, тебе либо придется отказываться от использования датасетов, либо создавать рядом копии классов с инфой и заниматься конвертацией объектов с чистыми данными (которые в бд хранятся) в объекты, которые будут хранить данные для датасета (данные для представления, иными словами view model). так что у тебя получается уже не классическое mvc или mvp, а mvvm.


http://ru.iccup.com/dota/details/1295953.html

 

ИДИТЕ НАХУЙ С ТАКМИ ГОНДАРАМИ

СВЕН ТП

СВЕН ПУШИТ

СВЕН ХЕКС

СВЕН ДАБЛКИЛЛ

СВЕН 7ОО КРИПОВ

Поделиться сообщением


Ссылка на сообщение

 

примерно ясно,

еще тогда один вопрос.

на форме есть таблица мне в нее нужно поместить например всех сотрудников. их обрабатывать по идее не надо,

получается функция в БЛ просто делает запрос с ДАЛ уровня и к примеру помещает полученные данные в таблицу?

 

// UI

btnClick()

{

BL.GetAllEmployee();

}

 

//BL

 

DataTable GetAllEmployee()

{

return DAL.ExecuteSElect();

}

//DAL

 

DataTable ExecuteSelect()

{

//bla bla bla

Adapter.Fill(_datatable);

return _datatable;

}

это ты датасеты используешь ? если да, то могу сказать тебе, что датасеты не пригодны для описываемой тобой трехзвенки, поскольку они предназначены как раз для прямого перекидывания данных на формочку и обратно. и если тебе нужно предварительно подготовить свои объекты с данными, тебе либо придется отказываться от использования датасетов, либо создавать рядом копии классов с инфой и заниматься конвертацией объектов с чистыми данными (которые в бд хранятся) в объекты, которые будут хранить данные для датасета (данные для представления, иными словами view model). так что у тебя получается уже не классическое mvc или mvp, а mvvm.

по итогу лучше данные с бд конвертить в объекты представления и дальше с ними работать?


 

 

trollgentleman.gif

131c75b37c8e.gifnukanuka.gifyep.gif

Поделиться сообщением


Ссылка на сообщение

как тебе удобнее. часто бывает, что бины, которые выплевывает бд, в принципе подходят для отображения "как есть", то есть просто достаточно провести её валидацию когда нужно, и всё. а бывает, что бины для представления нуждаются в другой структуре, тогда приходится либо решать этот вопрос наследованием (наследуемся от класса, который получаем из бд), либо композицией (создаем класс, который содержит ссылку на оригинальный объект и некоторые дополнительные поля). универсального решения нет, к сожалению. я стараюсь обойтись бдшным классом, но если нужно добавить доп. поле (для представления), то делаю уже другой класс. потому что если в бдшный класс накидывать поля, нужные только для представления, будет легко запутаться потом, придется комментарии писать типа воот мол это поле нужно только для представления, а когда просто из бд вынимаем, оно будет Null. неудобно. бдшные классы это и будет DAL, бины представления - View Layer (ну или BL, они используются в обоих этих слоях какбэ). имеет смысл "бдшные" классы выносить в отдельную сборку или хотя бы неймспейс, это облегчит понимание тем, кто в дальнейшем будет копаться с кодом.


http://ru.iccup.com/dota/details/1295953.html

 

ИДИТЕ НАХУЙ С ТАКМИ ГОНДАРАМИ

СВЕН ТП

СВЕН ПУШИТ

СВЕН ХЕКС

СВЕН ДАБЛКИЛЛ

СВЕН 7ОО КРИПОВ

Поделиться сообщением


Ссылка на сообщение

ну в обжектив си хотя бы интерфейсы есть в отличии от сипипи.


Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение

а вот жс заебись

автотесты писать - да


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...