|
|
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
Чтоб стать клёвым кодером, надо быть клёвым чуваком. ---- DBMS и BDSM - наше всё! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2008, 15:04:40 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
Надо начать участвовать в каком-нибудь open source прожекте... смотреть как люди программять... много чего можно подметить.. . и все такое... единственная проблема- тематика прожекта должны быть близка по духу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2008, 15:37:53 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
Плох тот солдат, который не хочет стать генералом. Так что автору топика остается только посоветовать стремиться стать как минимум Страуструпом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2008, 15:58:18 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
EmeryОставим в стороне технологию клиент-сервер. Мне кажется, ее использование упрощает жизнь разработчику, но усложняет жизнь пользователю (в смысле, мало комфорта для работы). Хотя фирма 1С и попыталась в восьмой версии своего продукта совместить несовместимое (интерфейс от файл-сервера, а доступ к данным от клиент-сервера, для чего ей пришлось ввести лишнее звено-посредник – сервер приложений) Интересно причем здесь комфорт, и почему сервер приложения - это лишнее звено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2008, 19:54:13 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
>>> Re: Как стать клёвым кодером? =) Начать читать сообщения с 217 страницы Экономьте электричество! Выключайте Num Lock! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2008, 20:23:16 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
aрхитектор:) При этом я всё-таки считаю себя чайником в пользовательском отношении, то бишь поставить Винду, дрова и настроить базовый комплект программ смогу, но более тонкими настройками не владею. Афтор! Ты аццкий сотона! Почитал твои посты в других форумах... Жги сильнее! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2008, 22:17:16 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
mayton aрхитектор:) При этом я всё-таки считаю себя чайником в пользовательском отношении, то бишь поставить Винду, дрова и настроить базовый комплект программ смогу, но более тонкими настройками не владею. Афтор! Ты аццкий сотона! Почитал твои посты в других форумах... Жги сильнее! Зочем вы тгавите? =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2008, 22:38:31 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
Кстати говоря, мне очень понравилась идея про опен сорс. Только как с такими чуваками можно сконтактировать и насколько это вообще распространено, скажем в России? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2008, 22:46:16 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
izekia EmeryОставим в стороне технологию клиент-сервер. Мне кажется, ее использование упрощает жизнь разработчику, но усложняет жизнь пользователю (в смысле, мало комфорта для работы). Хотя фирма 1С и попыталась в восьмой версии своего продукта совместить несовместимое (интерфейс от файл-сервера, а доступ к данным от клиент-сервера, для чего ей пришлось ввести лишнее звено-посредник – сервер приложений) Интересно причем здесь комфорт, и почему сервер приложения - это лишнее звено. Уже по тому, что задается такой вопрос, видно типичное отношение разработчика к своей программе, мол, «мне с ней не работать». Да, простой «юзверь» неприхотлив, берет все что дают и, как правило, молчит в тряпочку. Я, к примеру, работаю на предприятии, где используются мои программы учета. И не разу не слышал замечаний по удобству работы. Однако мне самому иногда приходится садиться за свои программы, чтобы навести марафет, найти ошибки пользователя и так, по мелочам. Меня сильно раздражает, если где-то приходится делать лишние телодвижения, что-то не совсем удобно и т.п. И хотя никто не просит, стараюсь убирать явные ляпы. Но иногда приходится иметь дело с чужими программами учета. И если вижу наплевательское отношение разработчика к пользователю, то это вызывает массу комментариев в адрес автора сего произведения. Иногда автор искренне не понимает, чего ждут от него пользователи, многие вообще «тираны», мол, делай, как я сказал и не вякай. Даже если делать приходится дурную работу. Тем не менее, основная претензия к тому, что «мало комфорта» заключается в слабой функциональности программы. Особенно это касается «тонких» клиентов. Их легко делать, но с ними очень тяжело и неприятно работать. Фирма 1С, в «восьмерке» сделала «толстого» клиента, но через одно пикантное, не побоимся этого слова, «импозантное» место. Сервер приложений, как таковой, отнюдь не плох, но не в данном случае. В 8-ке он используется исключительно как посредник, а «зачем нам кузнец, кузнец нам не нужен». Его использование говорит о концептуальных ошибках архитектуры приложения, которая так любит делать фирма 1С, что и вызывает массу нареканий в ее адрес. Можно ведь спроектировать так программу, чтобы в ней вместо «трехзвенки» была «двухзвенка», что скажется только в сторону повышения производительности работы, без потери удобства интерфейса. Для этого надо только либо интерфейс организовать по технологии «клиент-сервер» (это не типично, но можно), либо технологию доступа к данным заменить на файл-серверную (как было в семерке). Однако говорить об этом фирме «1С» бесполезно, ребята просто зарабатывают деньги на лохах, которые любят понты, мол, программа крутая, полно всяких рюшечек, требуется мощнейшее компьютерное оборудование для работы. Видел даже в Интернете тестирование серверов с помощью 1С8.х, мол, сервер такой крутой, что поддерживает десяток – полтора клиентов на «восьмерке». Я не намерен критиковать 1С, их продукт 1С77 просто прелесть, хотя и его можно сделать лучше. В данном случае важнее понимать концептуальные вопросы программирования, чтобы не делать хотя бы явных глупостей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 08:42:02 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
code.google.com вот тут можно поискать open source прожект ...там их много ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 11:42:13 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
EmeryОставим в стороне технологию клиент-сервер. Мне кажется, ее использование упрощает жизнь разработчику... Это только тебе так кажеться :) Файл-сервер писать как-раз гораздо проще. Относительно 1С77+MS-SQL - это не клиент-сервер, а полный изврат, т.к. MS-SQL тут используется как файл-сервер, для чего он абсолютно не приспособлен отчего и тормозит все жутко. Правильно спроектированное клиент-серверное приложение в разы быстрее и аналогичного файл-сервера, т.к. основной выигрыш тут идет в том что при файл-сервере качаются все данные на клиента и клиент делает выборку, а при клиент-сервере выборка делается сервером и только ее результат дается клиенту, что значительно снижает объем трафика (это немаловажно даже при объеме базы несколько десятков Мб), да и выборка сервером делается быстрее, т.к. железо там помощнее и большая часть данных уже в памяти закэширована может быть. Emery... но усложняет жизнь пользователю (в смысле, мало комфорта для работы). Пользователь видит только пользовательский интерфейс, а как реализовано взаимодействие с БД это его не интересует, согласен что есть особенности разработки при файл-сервере и клиент-сервере, но это проблемы разработчика, и как он сделал пользовательский интерфейс зависит только от разработчика, а не типа доступа к данным. Emery...Особенно это касается «тонких» клиентов. Их легко делать, но с ними очень тяжело и неприятно работать... "Тонкий клиент" это небольшое подмножество клиент-серверных решений главным достоинством которых является малый объем трафика, в угоду чему приходится жертвовать функционалом, что в итоге и на удобстве сказывается. Но в большинстве случаев это вынужденная необходимость. Случаи когда "тонкого клиента" кто-то пишет только потому что ему попробовать охота рассматривать не будем. EmeryКстати, если не секрет, а как вы планируете организовать доступ к базам данных? Немно плюсов связки 1С77+MS-SQL: есть такая компонента 1С++ которая позволяет делать полноценные запросы к 1С базам на MS-SQL. Эта компонента переводит запрос (не путать со встроенной в 1С пародией на запросы) в синтаксис SQL-запроса к базе MS-SQL и такие запросы отрабатывают действительно быстро. Видел это вживую на базе в несколько гигабайт. PS Прежде чем хаять клиент-серверные решения (тем более только по изучению оных в убогой реализации 1С77) рекомендую для начала освоить эту технологию и понять все ее плюсы и возможно использовать из тойже 1С. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 13:50:23 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
EmeryВ 8-ке он (сервер приложения) используется исключительно как посредник, а «зачем нам кузнец, кузнец нам не нужен». без комментариев просто, зачем рассуждать о том чего не знаешь или о чем прочитано где-то и когда-то в инете? Может есть смысл поизучать вопрос более подробно? EmeryОставим в стороне технологию клиент-сервер. Мне кажется, ее использование упрощает жизнь разработчику, но усложняет жизнь пользователю (в смысле, мало комфорта для работы). еще раз процитирую, причем здесь используемая технология, пусть даже в рамках 1С в77 и комфорт пользователя? я лично просто не вижу смысла в этом высказывании. но вот вывод: EmeryУже по тому, что задается такой вопрос, видно типичное отношение разработчика к своей программе, мол, «мне с ней не работать». мне очень нравится по поводу файлового варианта и использования сервера тупой простой пример недавнего проекта, необходимо было связать часть кода написанного в Excel с данными из 1С причем единственный способ связи - хттп + большой объем данных, к примеру справочник сотрудники 24 000 элементов. Ваш вариант реализации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 17:45:00 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
Dima T EmeryОставим в стороне технологию клиент-сервер. Мне кажется, ее использование упрощает жизнь разработчику...) Это только тебе так кажеться :) Файл-сервер писать как-раз гораздо проще. Относительно 1С77+MS-SQL - это не клиент-сервер, а полный изврат, т.к. MS-SQL тут используется как файл-сервер, для чего он абсолютно не приспособлен отчего и тормозит все жутко.) Ну, вот, сместились акценты и спор пошел в другом русле. Я не утверждал, что 1С77, или даже его SQL-ная версия это клиент-сервер. 7-ка это типичный файл-сервер, даже если он использует SQL-сервер (как файл-сервер). Понятно, что 1cv7s.exe всего лишь использует другое хранилище (не dbf-файлы, а базу данных SQL-сервера) и ничего более. Правда, те, кто хочет, применяют внешние компоненты для прямого доступа к базе данных SQL-сервера и использования всех его преимуществ. Основная масса профессионалов так и делает, заметно повышая производительность стандартной sql-ной «семерки». Лично я пошел другим путем, использовал не SQL-сервер через внешние компоненты, а движок Visual FoxPro, v.8. (вместо «1C Database Engine for .DBF, .CDX» из dbeng32.dll) для dbf-версии 1С77. Для обмена данными на уровне интерфейса задействовал DDE-сервер из 1С77. Замеры показали повышение производительности в 15 раз. И уже знаю, как повысить производительность еще в несколько раз за счет программной оптимизации. Для моих целей этого вполне достаточно. Клиент-сервером является «восьмерка», т.е. 1С8.х и то на стороне сервер-приложения – база данных MS SQL Server. А в цепи интерфейс – сервер-приложения (или везде при использовании встроенной базы данных 8-ки (типа mdb-файла)) это типичный файл-сервер, что действительно является извратом. «Файл-сервер писать как-раз гораздо проще»? Интересно где, в 1С? Если там то, да. Там он уже написан за нас. Но у нас то речь идет прежде всего о С++, а тут «толстого» клиента писать значительно тяжелее, чем «тонкого». То же можно сказать, например, и про Access. Организовать в Си и Акцессе интерфейс на уровне 1С – запаритесь, а какую-нибудь простую перегружаемую форму, «общающуюся» через провайдера данных, например, с SQL-сервером, относительно несложно. Dima TПравильно спроектированное клиент-серверное приложение в разы быстрее и аналогичного файл-сервера, т.к. основной выигрыш тут идет в том что при файл-сервере качаются все данные на клиента и клиент делает выборку, а при клиент-сервере выборка делается сервером и только ее результат дается клиенту, что значительно снижает объем трафика (это немаловажно даже при объеме базы несколько десятков Мб), да и выборка сервером делается быстрее, т.к. железо там помощнее и большая часть данных уже в памяти закэширована может быть. Почти что цитата из учебника. В принципе с этим никто не спорит. Но следует понимать, что «клиент-сервер» имеет как достоинства, так и недостатки. Хорошо о них было сказано в статье «Блеск и нищета клиента-сервера», поищите в Интернете, название цитирую по памяти. Возьмем простую навигацию данных. Пользователю интересно просто просматривать большую базу данных «вааще». Файл-сервер дает полный доступ ко всей базе данных, которую юзер может целиком сортировать, модифицировать где угодно и как угодно. Клиент-сервер даст ему только часть базы, а для этого юзверь должен ввести что-то типа запроса, ну там выбрать конкретный параметр, ограничения и т.п. А если пользователь не знает что он хочет, и желает только посмотреть, что вообще есть в базе? А если юзер продвинутый и может явно сформулировать интересующий его запрос, но тонкий клиент не может его обработать? Что тогда? Мол, бери что дают, а не то, что хочешь? Понятно, что клиент-сервер задает жесткую схему отношений, что может быть хорошо для целей безопасности, но плохо для комфортной работы по произвольной навигации по базе данных. Кроме того, сложные, комплексные системы учета просто трудно организовать на уровне интерфейса в виде чистого клиент-сервера, он просто не будет покрывать всех потребностей системы да и желаний пользователей. Тут конечно можно спорить, и я видел (у друзей программистов) реализации серьезных программ учета в виде, скажем, перегружаемой формы Акцесса в связке с SQL-сервером. Но этот минималистский интерфейс, хотя и позволяет достигать результата, но меня, однако, не прикалывает. 1С77 в этом смысле молодец, они сфарганили прекрасный интерфейс в простом деловом стиле, а разработчик объектов-справочников там просто умница. Но, конечно, какая бочка меда без своей ложки дегтя? Слабым местом в семерке является ее самописный движок базы данных. Многих это приводит в ступор и заставляет метаться между VFP (Парус), Navision, Axapta, SAP, R/3, Oracle, Access+SQL и т.д. и т.п., даже для решения относительно несложных учетных задач. Хотя при наличии небольшого воображения, легко значительно повысить производительность «семерки». Моим решением для dbf-версии 1С77 была связка DDE + ядро VFP, причем не знаю случая, чтобы так делал кто-то еще, все обычно предпочитают sql-версию 1С77 в связке внешние компоненты + SQL Server. Чтобы вернуться к теме С++, скажу в Си я планирую применять CListCtrl в виртуальном режиме, а поставщиком данных использовать RunTime Library VFP9, и базу данных в виде dbf-файлов (втором фундаментальном формате данных, после текстового *.txt). VFP можно использовать и как файл-сервер и как клиент-сервер. Виртуальный режим контрола SysListView32 (в MFC-обертке) это просто находка! Что позволят легко организовать полноценный интерфейс (по типу 1С) на технологии клиент-сервер. Единственное ограничение это то, что CListCtrl (на базе SysListView32) искусственно ограничен 100 миллионами записей. Но думаю, если достигну такого количества записей в базе данных, то найду способ его преодолеть. Здесь VFP не принципиален, при масштабировании задачи можно будет напрямую подключаться к промышленным базам данных. Просто RunTime Library VFP9, поставляется Мелкософтом бесплатно, и достаточно хорош для моих целей. Dima T"Тонкий клиент" это небольшое подмножество клиент-серверных решений главным достоинством которых является малый объем трафика, в угоду чему приходится жертвовать функционалом, что в итоге и на удобстве сказывается. Но в большинстве случаев это вынужденная необходимость. «Малый объем трафика» достигается и другим способом. С помощью «терминал-сервера», причем в этом случае не приходится «жертвовать функционалом». Dima TСлучаи когда "тонкого клиента" кто-то пишет только потому что ему попробовать охота рассматривать не будем. Тогда укажите пример реализации интерфейса «толстого» клиента (как в 1С) на базе чистого «клиент-сервера». Dima T EmeryКстати, если не секрет, а как вы планируете организовать доступ к базам данных? Немно плюсов связки 1С77+MS-SQL: есть такая компонента 1С++ … Речь шла об использовании С++, а не 1С. В 1С77 я уже профессионально реализовался, достиг приличных результатов, на которых можно доехать до пенсии. Но мне интересно сделать свои учетные программы независимыми от 1С и лишенных некоторых его недостатков, которые нельзя устранить никакими внешними компонентами. Dima TPS Прежде чем хаять клиент-серверные решения (тем более только по изучению оных в убогой реализации 1С77) рекомендую для начала освоить эту технологию и понять все ее плюсы и возможно использовать из тойже 1С. Плюсы клиент-серверных решений я знаю, и минусы тоже. Вы же знаете минусы 1С77, но не знаете ее плюсов, и как легко эти минусы обходятся практически, а не теоретически, как вы написали: «Видел это вживую на базе в несколько гигабайт». Если вы такой умный, то лучше предложите способ обойти ограничение в 100 миллионов записей виртуального режима SysListView32 (в MFC-обертке CListCtrl), как раз для целей использования интерфейса на технологии клиент-сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2008, 11:04:57 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
izekia EmeryВ 8-ке он (сервер приложения) используется исключительно как посредник, а «зачем нам кузнец, кузнец нам не нужен». без комментариев просто, зачем рассуждать о том чего не знаешь или о чем прочитано где-то и когда-то в инете? Может есть смысл поизучать вопрос более подробно? А может есть смысл ответить по существу? Скажем, скрытый от непосвященных, смысл сервера приложения 1С8.х в том что, ну хотя бы, «это коммерческая тайна». Дадите интересную зацепку, «поизучаю подробнее», а так, не вижу особого смысла. izekiaеще раз процитирую, причем здесь используемая технология, пусть даже в рамках 1С в77 и комфорт пользователя? Еще раз говорю, что предпочитаю искать решения в С++, а не 1С. По 1С у меня нет вопросов. А по существу, чтобы организовать полноценный интерфейс (я имею в виду, прежде всего полный доступ к данным на уровне одновременного использования множества гридов или лист-контралов и их форм диалогов интерфейса, но без явных запросов) обычно используется технология типа «файл-сервер» (если знаете для «клиент-сервера», то подскажите). А для клиент-сервера типичен интерфейс в виде «тонкого» клиента, т.е. одной или несколько относительно простых форм, используемых, как правило, модально, позволяющих организовывать доступ к данным по явному запросу. Так вот, «тонкий» клиент значительно менее удобен для работы, чем «толстый». Что же тут непонятного? Другое дело, построить толстого клиента на основе технологии доступа к данным «клиент-сервер». Чтобы была свободная навигация по одновременному использованию множества таблиц БД, без всяких там ограничений по объему данных, не нужных фильтров и явных запросов. Это как раз то, что меня сейчас волнует и что я хочу реализовать в своем проекте на С++. Есть, что сказать по существу, пожалуйста, рад буду выслушать. izekiaя лично просто не вижу смысла в этом высказывании. но вот вывод: EmeryУже по тому, что задается такой вопрос, видно типичное отношение разработчика к своей программе, мол, «мне с ней не работать». мне очень нравится Ладно, спишем все на издержки неявного общения… izekiaпо поводу файлового варианта и использования сервера тупой простой пример недавнего проекта, необходимо было связать часть кода написанного в Excel с данными из 1С причем единственный способ связи - хттп + большой объем данных, к примеру справочник сотрудники 24 000 элементов. Ваш вариант реализации? Ну, «техническое задание» надо бы формулировать поточнее. Что понятно одному, не факт, что понятно и другому. Чтобы врубиться в задачу, мне пришлось домысливать ее. Во-первых, я не понимаю смысла, зачем связывать код из одной системы с данными из другой? Может быть, имеется в виду построение отчета в экселе, на основе данных 1С? Причем данные из 1С выгружены в html-формате? Т.е. эксел должен достаточно быстро импортировать и может быть частично преобразовать данные из html-файла, достаточно большого объема, но сохраняющего табличную структуру. В данном случае, справочника сотрудников на 24 тысячи человек (это где ж работает столько народу?). Правильно ли я понял условие? Если так, то это задача для садо-мазо. Я к ним не отношусь. В этом случае, я бы построил отчет средствами VFP, работая непосредственно с базой данных dbf из 1С, опыт такой работы у меня имеется. Можно было бы воспользоваться системами построения внешних отчетов, типа FastReport. А если база данных расположена не в dbf, а базе данных SQL, то можно задействовать средства отчетов самой SQL (например, Reporting Services из MS SQL Server 2005). Можно также использовать VBA из самого эксела, с его помощью можно делать практически все, что хочешь, я же не знаю какой код там уже накропали. Ежели Excel работает медленно, то есть смысл посмотреть в сторону «Open office», говорят он работает на порядок быстрее, по этому поводу смотрите: http://www.gotdotnet.ru/Forums/Office/513237.aspx Короче, слишком много «если», чтобы ответить определенно, но думаю, я бы с этой проблемой справился. У нас говорят, что «это не проблема, а всего лишь задача». ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2008, 12:59:42 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
вкратце по вопросам без цитирования: 1. Сервер приложений - это разгрузка клиента, так как часть кода можно явно выполнять на нем. 2. Разговор начинался в контексте клиент-сервера 1С седьмой версии, сейчас Вы от этого ушли к общему. 3. По задаче, дело в том, что эта база на файловом варианте вообще бы не была бы живой, как мне кажется. А так как использовался СКЛ сервер, то это позволило достаточно быстро реализовать вебсервис на нете и с использованием хранимок достаточно быстро получать необходимую информацию и выдавать на клиента. Ну и собственно дальнейшая реализация на ВБ - это уже детали. Суть в том, что на фаловом варианте, даже с учетом прямого доступа к дбф - это было бы на порядок медленнее. Собственно я к этому и вел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2008, 14:36:01 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
просто судя по предыдущим постам мы немного не поняли друг друга ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2008, 14:37:58 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
Начну с конца: EmeryПлюсы клиент-серверных решений я знаю, и минусы тоже. Вы же знаете минусы 1С77, но не знаете ее плюсов, и как легко эти минусы обходятся практически, а не теоретически, как вы написали: «Видел это вживую на базе в несколько гигабайт». Если вы такой умный, то лучше предложите способ обойти ограничение в 100 миллионов записей виртуального режима SysListView32 (в MFC-обертке CListCtrl), как раз для целей использования интерфейса на технологии клиент-сервер. 1С77 как язык разработки это мягко говоря недоразумение, очень скудный и ограниченный в функционале язык. Немного пописать пришлось и вывод для себя я сделал простой: "Пока есть возможность писать не в 1С я буду ей пользоваться", пока все идет нормально :) В 1С немного поработал, работая в одной крупной конторе, учет на 1С77 в хорошо дописанной "Торговле". Плюсы знаю, сваять ввод документа простого какого-нибудь с печатными формами дело нескольких часов, справочник еще быстрее. Но как только дело доходит до построения какого-нибудь отчета средней сложности, так сразу начинается жуткий тормоз встроенного движка. Наблюдал больше от админов, которые сие чудо сопровождали. Крутилось в той конторе все в терминале на четырехпроцессорном серваке, база 2 гига DBF локально. При 30-40 активных юзерах все регулярно подвисало иногда зваешивая и терминал. Пробовали переселить базу на отдельный сервак соединив гигабитом, скорость падала в разы. Доработал механизм блокировок встроенный 1С-ный - скорость немного приподняли и терминал падать перестал, но на вопрос руководства сколько надо денег на железо чтобы заработало хотя бы в два раза повеселее ИТ отдел давал ответ: "можно попробовать за 100 тысяч условных енотов сервачек купить, но двухккратного ускорения не обещаем" Там же и на SQL базу переводили, где я на 1С++ в действии посмотрел, со стороны. EmeryЛично я пошел другим путем, использовал не SQL-сервер через внешние компоненты, а движок Visual FoxPro, v.8. (вместо «1C Database Engine for .DBF, .CDX» из dbeng32.dll) для dbf-версии 1С77. Я так-то на VFP восновном пишу. На Си только низкоуровневые вещи, которые из фокса недоступны. Движок MS-SQL при активном участии разработчиков VFP делался. Для того MS фокс и купило. И несмотря на всю фоксовую производительность даже в небольшой сетевой проге из 3-4 пользователей связка VFP+SQL более производительна. Пример на цифрах: выборка из 4-х табличек общим весом 10Мб что фоксом, что SQL-ем делается за миллисекунды, но протащить эти 10Мб по сетке в 100 Мбит занимает секунды полторы-две, а результат весом 20-30 кб пролетит на порядки быстрее, вот и получается что VFP потратит пару секунд, а SQL десятые или сотые доли секунды. А производительность далеко не самый маловажный фактор. Emery«Файл-сервер писать как-раз гораздо проще»? Интересно где, в 1С? Если там то, да. В VFP. В чисто алгоритмических языках как С++ нет встроенного СУБД движка, поэтому там проше писать интерфейс, а задачи выборки данных возложить на SQL-сервер. Emery Dima TСлучаи когда "тонкого клиента" кто-то пишет только потому что ему попробовать охота рассматривать не будем. Тогда укажите пример реализации интерфейса «толстого» клиента (как в 1С) на базе чистого «клиент-сервера». Такого чтобы широкоизвестное что-то было не скажу, думаю в форуме по MS-SQL много примеров приведут. Да и в VFP-шном тоже многие связку VFP+SQL пользуют. Приведу пример классических тонких клиентов - интерфейс больших ERP (SAP, Navision и т.п.) интернет-банки, интернет-магазины, вобщем все что из интернет-браузера работает. Emery«Малый объем трафика» достигается и другим способом. С помощью «терминал-сервера», причем в этом случае не приходится «жертвовать функционалом». Ага, очень "малый" если на принтер клиента печатать. Видел я таки решения, и счета за инет при их использовании. Про стоимость терминальных лицензий можно еще упомянуть. EmeryПользователю интересно просто просматривать большую базу данных «вааще». Файл-сервер дает полный доступ ко всей базе данных, которую юзер может целиком сортировать, модифицировать где угодно и как угодно. Клиент-сервер даст ему только часть базы... Как раз "толстый" клиент-сервер может притащить всю таблицу и пусть пользователь ее разглядывает если ему так уж это интересно. Что мешает дать возможность пользователю быстро открыть выборку по заранее введенному фильтру или показать все если он фильтр не знает как задать? Я так делаю, по крайней мере если всего не более 10000 записей. Это ограничивается только интерфейсом, т.е. его разработчиком. Вернусь немного к скорости разработки - любой разработчик с опытом работы с БД имеет наработки, которые позволяют значительно ускорить рутинные операции. На С++ с его мощнейшим ООП можно создать библиотеку (думаю что таких немало начиная с MFC) для быстрого создания форм ввода и отчетов. Тот же FoxPro изначально появился как оболочка Си заточенная для работы с БД, потом сформировался как отдельный язык. На том же VFP можно разрабатывать со скоростью сопоставимой 1С (например сваять справочник или новый документ мне хватит пары часов). Но в отличии от 1С остается в запасе вся мощь языка, которую можно в любой момент задействовать. Но тут есть одно маленькое НО - опытный разработчик, если таковой действительно профи и уходит бросая проект на С++ или VFP, Delphi, даже VB в Access`e , то редко замена может этот проект адекватно поддержать, и в итоге проект постепенно умирает. По моему в этом огромный плюс 1С, в его убогости как языка, он настолько примитивен и ограничен что в коде гуру в состоянии разобраться бывший студент с полугодовым опытом работы и продолжить его сопровождать. Поэтому с точки зрения владельца бизнеса софт на 1С при всех недостатках лучше, т.к. найти профи в нормальном языке гораздо сложнее чем 1С-ника. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2008, 15:08:03 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
izekia1. Сервер приложений - это разгрузка клиента, так как часть кода можно явно выполнять на нем. Не совсем, я бы сказал еще разгрузка сервера БД. Трехзвенка полезна в больших задачах (много данных и пользователей) для повышения производительности, т.к. серверу БД оставляется только функция хранилища данных, а сервер приложений реализует бизнес-логику, а клиент только ввод-вывод. Причем появляется возможность взять соответствующее железо для каждого сервера и сэкономить на клиентском железе. На небольших системах это лишнее IMHO. PS Мы как-то глубоко в оффтоп ушли от темы форума. Надо наверно это заканчивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2008, 15:46:39 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
отвечал исключительно в контексте вопроса про сервер 1С, не иммел в виду классическую трехзвенку. По поводу убогости языка - каждый язык для своих задач, со своими особенностями. Вы же видели 1С++, а даже с ее добавлением уже интереснее. Восьмую версию я вообще не упоминаю. Так же не согласен с высказыванием про студента - это общепринятое заблуждение. Но это действительно выходит за рамки данного форума. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2008, 17:34:59 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
izekiaотвечал исключительно в контексте вопроса про сервер 1С, не имел в виду классическую трехзвенку. Они ж в 1С8 вроде как на автоматизацию средних предприятий замахнулись, где 1С77 просто умирала от большого кол-ва пользователей и объема базы, пытались вроде классическую трехзвенку сделать. izekiaПо поводу убогости языка - каждый язык для своих задач, со своими особенностями. Вы же видели 1С++, а даже с ее добавлением уже интереснее. Восьмую версию я вообще не упоминаю. Так же не согласен с высказыванием про студента - это общепринятое заблуждение. Немного из моего опыта программирования в основном VFP, С++ продолжаю осваивать до сих пор (прочитал половину Страуструпа и понял что вторую читать мне еще рано), PHP освоил за пару недель с помощью товарища, в 1С77 за день по докам разобрался с "бухгалтерией" и написал экспорт документов из своей проги, когда пробовал писать внешние обработки останавливался на всякой мелочи (типа строку в гриде цветом выделить) и в итоге узнавал что это невозможно. Я все-таки считаю это убогостью. Попытки ее исправить такими разработками как 1С++ на мой взгляд это только подтверждает, т.к. к самой 1С это никакого отношения не имеет и ведется добровольцами в опенсорце, 1С только молча не возражает. В восьмерке хоть что-то похожее на язык появилось. Про студента с 7-кой утрировал конечно, общепринятое заблуждение что студент в несколько раз дешевле обойдется, я об требуемом уровне знаний. Например общаюсь с программистом 1С (далеко не студент) и с трудом ему объясняю что мне от него надо выгрузку в текстовый файл определенного формата, он просто не понимает что я от него хочу. Смог бы такой человек прогу на нормальном языке сопровождать? А с обязанностями 1С-программиста справляется, что-то там пописывает, и на работе вроде не жалуются на него. Но реальность (по моему опыту в сфере торговли в основном), к сожалению, такова что при выборе платформы чаще выбирается 1С, те кто на ней сидят не хотят уходить несмотря на проблемы, многие из тех кто на своем самописном софте живет подумывает на смену в пользу 1С-ки, и основная причина этого наличие разработчиков, вторая причина (гораздо менее важная) открытость исходников, а потом уже смотрится на производительность и устойчивость. И я советую юзать 1С по этим причинам, хотя терпеть ее не могу. В VFP-шном форуме периодически тема конкурентов VFP подымается и 1С признают одним из самых серьезных конкурентов. Обидно просто что все именно так обстоит. izekiaНо это действительно выходит за рамки данного форума. Закрываем тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2008, 18:57:08 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
у меня есть много что сказать, но давай сменим тему, кинь ссылку, или я могу тему создать на другом форуме ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2008, 00:52:19 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
Dima TНачну с конца: EmeryПлюсы клиент-серверных решений я знаю, и минусы тоже. Вы же знаете минусы 1С77, но не знаете ее плюсов, и как легко эти минусы обходятся практически, а не теоретически, как вы написали: «Видел это вживую на базе в несколько гигабайт». Если вы такой умный, то лучше предложите способ обойти ограничение в 100 миллионов записей виртуального режима SysListView32 (в MFC-обертке CListCtrl), как раз для целей использования интерфейса на технологии клиент-сервер. 1С77 как язык разработки это мягко говоря недоразумение, очень скудный и ограниченный в функционале язык. Немного пописать пришлось и вывод для себя я сделал простой: "Пока есть возможность писать не в 1С я буду ей пользоваться", пока все идет нормально :) Странно это слышать человеку, который профессионально занимается 1С77 (за это я получаю зарплату). Мой вывод противоположный, с «семеркой» можно иметь дело, возможностей его вполне достаточно для предприятия среднего (типа нашего) уровня, а возможности легко наращивать за счет внешних компонент. Даже без всяких внешних компонент можно легко подключить VFP как OLE (для vfp9.exe /regserver) или COM-сервер (для vfp9r.dll) и свободно выполнять любой код (prg/fxp/app/exe) Visual FoxPro в среде 1С. Работать с чистым VFP не вижу смысла и «Парус» тому пример, зато ядро VFP очень даже стоит применять в 1С, производительность его ненамного отстает от MS SQL Server. Единственное условие конфигурации должны быть 100% собственные. Я уже 4 года работаю с 1С и практически не чувствую в нем никаких ограничений. Причем имеется множество идей по оптимизации кода. Но все же хочется (ради собственного удовольствия) попробовать сделать достаточно универсальную 1С-независимую программу учета ресурсов и начислений на средних предприятиях. Судя по вашей информации, 1С у вас применяется для очень крупного предприятия. Для этих целей он совершенно не предназначен . Нужно было искать другое решение, оптимальное для корпоративного пользователя. Однако это совершенно некорректно говорить о недостатках 1С используемого на крупном предприятии. Вашим специалистам надо памятник поставить, за то, что вообще заставили работать систему. Тем не менее, никто не снимает ответственности с того, кто спроектировал такую концепцию ведения учета на вашей фирме. Возможно, объяснить можно тем, что хотели получить дешевое решение, но, «скупой платит дважды». Раз уж здесь зашла речь о SysListView32, то, похоже, решение очевидно. Переводим число 100000000 в шестнадцатеричный вид, получаем 5F5E100. Ищем это значение в comctl32.dll. Находим его в трех местах. Везде код однотипный, типа: Код: plaintext 1. 2. 3. 4. Dima TВ чисто алгоритмических языках как С++ нет встроенного СУБД движка, поэтому там проше писать интерфейс, а задачи выборки данных возложить на SQL-сервер. Вот, ради этого, я и пришел в С++. То, что нет здесь «нет встроенного СУБД движка», нормально. Он здесь и не нужен, не тот уровень языка. А выбор сервера базы данных, это уже дело вкуса, потребностей и возможностей. Для меня то главный вопрос как раз в интерфейсе, реализуемом на Си, точнее в способе его взаимодействия с базой данных. То, что я хочу реализовать можно достичь с помощью виртуального режима SysListView32, над этим я сейчас и работаю. Dima TПро стоимость терминальных лицензий можно еще упомянуть. Можно предложить программулину WinConnect: http://www.thinsoftinc.com/download/WinConnect-ServerXP/setup.exe Она тоже платная, но подешевле будет. Причем, если сильно захотеть, то можно написать ее аналог самостоятельно, она основана на относительно простой идее. Dima TКак раз "толстый" клиент-сервер может притащить всю таблицу и пусть пользователь ее разглядывает если ему так уж это интересно. Что мешает дать возможность пользователю быстро открыть выборку по заранее введенному фильтру или показать все если он фильтр не знает как задать? Я так делаю, по крайней мере если всего не более 10000 записей. Это ограничивается только интерфейсом, т.е. его разработчиком. Но я хочу другое. Чтобы можно было клиенту посмотреть 100 миллионов или даже 4 миллиарда записей базы данных в произвольной навигации по гриду или лист-контролу. Это не утопия и никаких ограничений по скорости, если использовать виртуальный режим SysListView32 и достаточно мощный сервер базы данных. Запросы клиента тут конечно есть, но они неявные, задаются его перемещениями клавиш (стрелки вверх/вниз, PageUp/PageDown, Home/End, перетаскивание мышью ползунка на полосе скроллинга). Хотя ничто не мешает задавать и явные запросы, например, перейти к записи номер такой-то. Тогда не будет ограничения типа ваших «10000 записей». Dima TПо моему в этом огромный плюс 1С, в его убогости как языка, он настолько примитивен и ограничен что в коде гуру в состоянии разобраться бывший студент с полугодовым опытом работы и продолжить его сопровождать. Поэтому с точки зрения владельца бизнеса софт на 1С при всех недостатках лучше, т.к. найти профи в нормальном языке гораздо сложнее чем 1С-ника. Думаю, что здесь есть элемент заблуждения. Я, например, когда начинал программировать на 1С, имел в наличии практически все стандартные конфигурации. И думал, что вот, щас, выберу лучшую, слегка подредактирую под свои нужды и будет мне счастье. Однако меня постигло сильное разочарование. Оказалось, что разбираться в чужом коде, особенно если его очень много, скажем мегабайты, неблагодарное занятие. До этого у меня уже был опыт программирования на Си, Паскале + Object Professional, FoxPro и даже, немного, на Клипере. Что касается чужих конфигураций на 1С, то первое, что меня удивило, это отсутствие у их авторов хорошего знания концепции учета, как таковой. Второе, что меня неприятно поразило, это небрежность программирования, основной принцип тяп-ляп, как-нибудь. Я не видел ни одной добросовестно сделанной конфигурации. Плюс еще продираться через дебри ужасно написанного кода. Это оказалось выше моих сил и я решил, что дешевле для моего душевного здоровья самому написать конфигурации с нуля, чем разгребать чужое *****. Даже если просто внести более менее заметные изменения приходилось шастать по всему коду, матерясь на его качество реализации. Видно было что «конфигурасты» не любили свою работу. Но главное открытие для меня было то, что братья Нуралиевы реализовали такую концепцию учета, причем на системном уровне, которая мне чужда органически. Скажем, на уровне бухгалтерии, это изобретение субконто фирмой 1С, как способа натурализации бухгалтерского учета. Но, «бухгалтерский учет», это не столько учет, сколько контроль за деятельностью предприятия и по большому счету чужд самому предприятию. Пришлось перевернуть эту конструкцию с головы на ноги. За основу взял «натуральный учет», как я его называю. Все вроде бы про него знают, но нигде не нашел явной и ясной формулировки. Многое надо было домысливать. Далее все стало прекрасно, провел детализацию «натурального учета» до такого уровня, чтобы стандартный учет (то бишь, контроль со стороны госорганов) вытекал из него как следствие, а не причина, как у братьев Нуралиевых. Далее, объектная модель 1С оказалось ниже плинтуса. Единственное, что там действительно необходимо, это объект «Справочник». Прочие объекты: «Документы», «Регистры», «Календари», «Журналы», «Операции», «Планы Счетов», «Субконто», «Проводки», «Виды и группы расчетов» мне абсолютно не нужны и я ими не пользуюсь. Однако их наличие мне не мешает. Так что мне не мало, много лишнего в 1С77 :) Практически во всех конфигурациях была масса глупостей, из-за относительно низкого уровня 1С-ников. Поэтому все их произведения пришлось выбросить на свалку. Я отнюдь не собираюсь утверждать, что пишу замечательный код, просто использую совершенно другую концепцию программирования, чем та, которые навязывает фирма 1С. Думаю, что в моем коде «бывший студент с полугодовым опытом работы», да и любой 1С-ник, с мышлением братьев Нуралиевых хрен разберется. Тем более что существенная часть кода (где-то пол-мегабайта) вынесена во внешнее приложение VFP. Чтобы понять мою концепцию, ему надо понять весь код, на что уйдет время сопоставимое с его разработкой (там у меня универсальный генератор отчетов чего стоит). Хотя, конечно, если код вылизан и прекрасно работает, то внести в него мелкое изменение не составит труда, что мы только что продемонстрировали на примере SysListView32. Но что касается полноценного сопровождения и поддержки моего или чужого кода сторонним специалистом, то это еще большой вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2008, 11:48:48 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
блин, ребята, форум про 1С здесь , давайте ближе к C++, а? EmeryРаз уж здесь зашла речь о SysListView32, то, похоже, решение очевидно. Переводим число 100000000 в шестнадцатеричный вид, получаем 5F5E100. Ищем это значение в comctl32.dll. Находим его в трех местах. Везде код однотипный, типа: Код: plaintext 1. 2. 3. 4. EmeryНо я хочу другое. Чтобы можно было клиенту посмотреть 100 миллионов или даже 4 миллиарда записей базы данных в произвольной навигации по гриду или лист-контролу можете пояснить зачем и для кого это надо? где найти тот монитор, на который поместятся 4 миллиарда записей за раз и где найти человека, который сможет во всём этом разобраться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2008, 12:11:54 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
EmeryТ.е., если значение меньше 0 и больше 100 миллионов, то уходим нафиг. Понятно, что если заменить 5F5E100 на, скажем, FFFFFFFE, то получим предел на количество записей в базе данных, отображаемых в SysListView32, свыше 4-х миллиардов. Что вполне достаточно для наших целей :) . Emery Хотя, конечно, если код вылизан и прекрасно работает, то внести в него мелкое изменение не составит труда, что мы только что продемонстрировали на примере SysListView32. Но что касается полноценного сопровождения и поддержки моего или чужого кода сторонним специалистом, то это еще большой вопрос. Ой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2008, 12:27:36 |
|
||
|
Как стать клёвым кодером? =)
|
|||
|---|---|---|---|
|
#18+
Оставим мое отношение к 1С в стороне, слава богу фокса хватает на хлеб с маслом. Да и форум непрофильный для этой темы. Интересно вот это: Emery... Но я хочу другое. Чтобы можно было клиенту посмотреть 100 миллионов или даже 4 миллиарда записей базы данных в произвольной навигации по гриду или лист-контролу. Это не утопия и никаких ограничений по скорости, если использовать виртуальный режим SysListView32 и достаточно мощный сервер базы данных. Запросы клиента тут конечно есть, но они неявные, задаются его перемещениями клавиш (стрелки вверх/вниз, PageUp/PageDown, Home/End, перетаскивание мышью ползунка на полосе скроллинга). Хотя ничто не мешает задавать и явные запросы, например, перейти к записи номер такой-то. Тогда не будет ограничения типа ваших «10000 записей». ... Поставим себя теперь на место пользователя: глядит например он на 10000 записей справочника (даже не миллион). Он знает что ему надо запись на букву "Н", т.е. где-то в середине. Допустим 25 записей на экран влазит, так ему надо 200 раз на PageDown давануть чтобы до середины промотать. В чем тут удобство? Мышем скролить? Так тут тоже не быстро, пока в ползунок попадешь, да и мелькает все с огромной скоростью при большом кол-ве записей. Помоему более чем в двух экранах записей искать кнопками навигации уже некомфортно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2008, 14:32:25 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=35559615&tid=1343972]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 422ms |

| 0 / 0 |
