pitane

9 отговора 218 прегледа
#1

pitane

Hora, daite idea kak da zabavia izpalnenieto na edna programka elegantno a ne s prazen cikal naprimer!
Problema e che executvam vanshan programa pez java prilogenie i dokato programkata se izpalni i varne rezultat, javata e minala na pred i e prochela prazni in i error buferi!
opitah s Process,waitFor(), ama zabiva na nego!
A, ne stava duma za tredove!

Process p= Runtime.getRuntime().exec("c:\\openssl\\bin\\openssl smime -verify -CAfile c:\\testca.cer");



Отговор
в отговор на mladvampir #2

Re: pitane

Даааа. Забива, прав си. И аз колко време си блъсках главата с това
Виж това [линк] и като решиш проблема, чакам минимум една бира за акъла


All warfare is based on deception.
Sun Tzu [1:18]
Отговор
в отговор на Whitelion #3

Re: pitane

Mnogo 10x, stana, zasluji si birata, ama kade i kak?


Отговор
в отговор на mladvampir #4

Re: pitane

Ами аз принципно от известно време имам една идея да се съберем малко Java-исти ей така на по биричка, ама хайде да остана малко свободен, да ми се върнат хората от отпуска и ще постна една отделна нишка по темата. Ако се съберат няколко души, може да поставим основата


All warfare is based on deception.
Sun Tzu [1:18]
Отговор
в отговор на Whitelion #5

Re: pitane

Bi bilo dobre!
Za obmiana na opit edin vid!


Отговор
в отговор на mladvampir #6

За дизайна чрез договаряне

Моите съчувствия - значи нямате и swing. Лично аз съм фен на assert-ите. BTW, може да бъда разстрелян в този форум, но препоръчвам и една книга от Microsoft Press - "Как да пишем надеждни програми/Writing a Solid Code". Издаде я на български NiSoft (не знам дали ги има още). Отделен въпрос е че май доста кодери в майкрософт не я четат.


Та в java изполвах следния код преди да се появят в jdk 1.4:

public static void _assert(boolean c, Object info) {
if (DEBUG && !c) {
throw new InternalError("assertion failed: " + info);
}
}


Когато в 1.4 се появиха вградени, ми се наложи да преименувам assert на _assert на десетки хиляди места :-)

Често съм си мислил - най-важното при assert-а в java е, че трябва да се използва за проверка на алгоритми, а не на данни. За прекондиции има NullPointerException,
IllegalStateException, InvalidArgumentException и так дале. Според мен затова в Sun са се колебали чак до версия 1.4. За посткондиции и инварианти няма проблеми, но за входни данни аssert трябва да се използва само при защитаване на модули - когато един exception в runtime
версията би дестабилизирал нещата в крайния продукт, а в крайната версия assert-ите ще са спряни. Примерно отворили сме файл за запис и искаме да го запишем на всяка цена, въпреки че единия аргумент на функцията е некоректен. В този случай по-добре да не се хвърля exception в началото, а
да се сложи assert. Но в този случай аз бих поставил assert в края, а не в началото, защото не бих искал да си изгубя данните дори и в тестовата версия. Проблемът е обаче, че след close-а, спокойно можех да хвърля в края и exception.
Но в интерес на истината това би решило проблема само в рамките на метода. За защитено програмиране панацея няма - трябва да се гледа общата архитектура.


Както и да е - assertite са хубаво нещо и горещо ги препоръчвам. Често съм получавал съвсем основателни предупреждения от тях и съм си спестявал кошмарни дебъгвания. Assert-ите и Throwable-ите са една от причините да обичам java-тa, стига да ги гледа програмистът, а не потребителят.

Отговор
в отговор на Koнcтaнтин Cпиpoв #7

Re: За дизайна чрез договаряне

Спокойно, никой няма да те разстреля

Книжката и аз съм я чел и върху доста неща се замислих. Ама поправи ме ако не греша - ама май е старичка? Поне аз доста одавна съм я чел и беше за С. Да не е излязло нещо ново?!?!

Иначе примера с удавниците и тоя който ги спасяваше там съм го виждал в реалния живот n пъти


All warfare is based on deception.
Sun Tzu [1:18]
Отговор
в отговор на Whitelion #8

Re: За дизайна чрез договаряне

Какъв е примерът с удавниците?

Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Отговор
в отговор на Duncan Griffin #9

Re: За дизайна чрез договаряне

Ами седи си някакъв човек на брега на една река и лови риба. Изведнъж - вижда някакъв друг се дави в реката. Пича хвърля въдицата, скача в реката, плува до него и го изтегля на брега.
Тъкмо вече се успокоил и оставил удавника да се възстановява и чува викове. Обръща се и гледа - в реката се давят двама!
Хвърля се пак, изтегля ги със сетни сили на брега. Едвам си поема въздух и вижда в реката четирима!
Та с една дума - от вадене на хора от реката, пича няма време да се качи по-нагоре по течението да види кой ги хвърля тия хора вътре

Същото и с бъговете, аналогията я виждаш. Ама адски удачно примерче е


All warfare is based on deception.
Sun Tzu [1:18]
Отговор
в отговор на Whitelion #10

Re: За дизайна чрез договаряне

hahah, naistina e dobyr primer. :))
I az sym vijdal podobno neshto :)

Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Отговор