Re: Функционал и интерфе йс

2009-03-18 Пенетрантность Alexander Danilov

Alexander GQ Gerasiov пишет:

На Tue, 17 Mar 2009 20:37:53 +0300
Alexey Pechnikov pechni...@mobigroup.ru записано:


Hello!

On Tuesday 17 March 2009 19:33:16 Yuri Kozlov wrote:

Ну так как, пробовать будем?

Неа.

Если посмотреть выше, то речь шла о демонах, а не парсерах текстовых
файлов. Или Вы считаете их равнозначными задачами?

Есть у меня и демоны на тикле, например, собирают и обрабатывают
данные с цисок и других АТС. Написать то же самое на С большая работа
(на тикле используются события для прослушивания множества сокетов, а
на С придется создавать отдельные потоки), потому и не предлагаю как
тестовую задачу (притом демоны умеют держать в in-memory SQLite
database те данные, которые не удалось записать в persistent
database), не говоря уж о реализации самой логики обработки.


Ну, вообще говоря, есть довольно неплохая GLib2 или QtCore, в которых
соответствующие примитивы.



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


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: Функционал и интерфе йс

2009-03-17 Пенетрантность Oleksandr Gavenko

Mikhail Gusarov wrote:

Просто перл выдаёт однострочную ошибку, а python - развёрнутый stack
trace. Это влияет на отношение :)


Stack trace очень мощный инструмент.
Потому Java и Python выигрывают у ++.

Для разработчиков очень ценна инфа от коредампа:

$ gdb `which app` core
...
(gdb) bt
#1  0x403b6ae3 in ASTTranslator::visit () from 
/usr/lib/python2.4/site-packages/Synopsis/Parsers/C/ParserImpl.so
#2  0x40413d0b in Synopsis::PTree::Declarator::accept () 
from /usr/lib/libSynopsis.so.8

...

--
С уважением, Александр Гавенко.
Компания БИФИТ.
Сайт:   www.bifit.com.ua
Тел:+38 (0562) 23-23-14, 23-31-00
E-mail: gave...@bifit.com.ua


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Функционал и интерфе йс

2009-03-13 Пенетрантность Artem Chuprina
Покотиленко Костик - debian-russian@lists.debian.org  @ Fri, 13 Mar 2009 
19:56:06 +0200:

 Вот, навскидку назвал, и 
 это несмотря на то, что вы привели список _консольных_ утилит в 
  основном.
 
 Просто для информации: к любой консольной утилите (у которой есть 
  stdin
 и stdout) веб-морду можно приделать как два пальца об асфальт.
 
Осталось только узнать зачем.
  
   ПК Вот-вот.
  
   ПК Плохая практика: прога с CLI + фронтенд
   ПК Хорошая практика: прога с CLI -- либа -- прога с GUI
  
  То, что ты назвал плохой практикой - unix way, и тот факт, что эта
  практика - плохая, требует обоснования.  Нет, я не утверждаю, что
  браузер - достаточно хороший гуй, а HTTP - достаточно хороший протокол,
  чтобы тыкать их во _все_ дырки...  Фронтенд совершенно не обязательно
  должен работать по HTTP...
  
  Ну и да, по ходу дела ты, по сути, записал в плохую практику
  практически все клиент-серверные решения.  Начиная с SMTP и HTTP :-)

 ПК Не так. Не путай клиент-серверное решение и IPC с фронтендом :). Разница
 ПК очевидна:

 ПК 1. IPC: связь нескольких процессов в пределах одной машины

 ПК 2. клиент-серверное решение: связь нескольких процессов работающих на
 ПК разных машинах

Это разделение уже изрядно условно.  Так, во-первых, я хожу к
IMAP-серверу своего ноутбука вне зависимости от того, на том же ноутбуке
у меня гнус или на совершенно другой машине.

Во-вторых, и к нему, и к заведомо удаленному IMAP'у основной почтовки я
хожу ... правильно, по IPC.  Этот IPC транслируется на удаленный хост
посредством ssh, но и gnus, и imapd видят пайпы к локальному процессу.
Точнее, emacs и imapd видят пайпы, а гнусу безразлично, пайп там или
сокет, он видит вообще буфер.

Я уж молчу про erlang (как язык) и прочие средства кластерной работы.  У
них, я извиняюсь, задача _заключается в_ том, чтобы не было разницы, на
одной машине оно выполняется или на разных.

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

 ПК 3. фронтенд: использование функционала программы с одним интерфейсом в
 ПК другой программе с другим интерфейсом посредством чего-либо, в том числе
 ПК и IPC.

 ПК Во вменяемых ресурсах по написанию программ так и написано: функционал
 ПК нужно отделять от интерфейса. Это для многих сложно, но на то есть свои
 ПК причины, и от того есть много преимуществ.

 ПК В проектах, где следуют такому принципу, фронтендами редко пахнет, так
 ПК как если есть либа со всем функционалом, проще её и использовать, и не
 ПК бояться, что в используемой программе ключики поменяются.

 ПК Это моё личное мнение, кто не согласен, начинайте новую тему, интересно
 ПК послушать что вам есть сказать.

Тебе не приходило в голову, что у библиотеки вообще-то тоже есть
интерфейс?  Правда, рассчитанный на разработчика, а не на энд-юзера.
Из чего, кстати, следует, что функционал от интерфейса отделить
невозможно.  Потому что тогда не будет способа воспользоваться
функционалом :-)

Так вот, у классической юниксовой CLI-программы интерфейс рассчитан на
юникс-юзера.  Который ближе к разработчику, чем к энд-юзеру.  И тем
самым просто является таким же API, что и у библиотеки.  Только
протокол, над которым построен этот интерфейс, более высокого уровня,
чем у сишной библиотеки, и позволяет работать с ним непосредственно
человеку.  Но если этот человек может алгоритмизовать некоторый набор
своих действий - он поручает его программе, и API для этого у него уже
есть.  У тех разработчиков, которые об этом забыли (или забыли в букваре
про это прочесть), интерфейсы библиотек, кстати, тоже кривы до
умопомрачения.  D-BUS тому ярким примером...

-- 
Artem Chuprina
RFC2822: ran{}ran.pp.ru Jabber: r...@jabber.ran.pp.ru


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org