Кът на програмиста...
Moderator: Moridin
- The Dragon
- Elder God
- Posts: 9062
- Joined: Wed Jan 14, 2004 9:03 pm
- The Dragon
- Elder God
- Posts: 9062
- Joined: Wed Jan 14, 2004 9:03 pm
- Roamer
- Ascendent
- Posts: 4895
- Joined: Wed Jan 03, 2007 5:25 pm
- Location: Hier ist hier und jetzt ist jetzt doch jetzt ist jetzt schon nicht mehr da...
- Contact:
Този път какво?
Не че няма достатъчно неща, за които да се хване човек точно при тях де... навремето Даниел Калчев си беше измислил нещата така, че да е сигурен, че няма да носи никаква отговорност и че няма да е върху него тежестта на решението при евентуални диспути - просто нямаше начин да има диспути... Хората от register.bg продължават с този подход, така че за тях да е лесно - макар че на моменти прекаляват, да
В твоя случай за какво? 



Eric: I use my sword to detect good on it.
Ed: It's not good, Eric. It's a gazebo.
Ed: It's not good, Eric. It's a gazebo.
- The Dragon
- Elder God
- Posts: 9062
- Joined: Wed Jan 14, 2004 9:03 pm
- Roamer
- Ascendent
- Posts: 4895
- Joined: Wed Jan 03, 2007 5:25 pm
- Location: Hier ist hier und jetzt ist jetzt doch jetzt ist jetzt schon nicht mehr da...
- Contact:
Ъм... таковата... международни стандарти за регистрация и управление на домейни *няма*
Т.е. така де, има това, което IETF и ICANN са казали - а всичко, което те казват, е "ами ето валидните top-level domains, и ето и списък с това за кой top-level domain кой отговаря - и оттам нататък този, който отговаря, си е сам цар и господар и има право да налага каквато реши политика за домейните, регистрирани в този TLD." Няма никакви изисквания повече.
А идеята с основанията и данните, както вече споменах, първоначално беше Даниел Калчев и Цифрови системи да не носят отговорност при опити за крадене на домейни - да не можеш да отидеш ти и да кажеш "ми искам да си регистрирам coca-cola.bg" и после да дойдат хората от Кока Кола и Цифрови системи да им кажат "Ми... то... таковата... този домейн вече е регистриран, ние отде да знаем, че не сте вие?". Сега... защо тази политика още продължава... е съвсем друг въпрос

А идеята с основанията и данните, както вече споменах, първоначално беше Даниел Калчев и Цифрови системи да не носят отговорност при опити за крадене на домейни - да не можеш да отидеш ти и да кажеш "ми искам да си регистрирам coca-cola.bg" и после да дойдат хората от Кока Кола и Цифрови системи да им кажат "Ми... то... таковата... този домейн вече е регистриран, ние отде да знаем, че не сте вие?". Сега... защо тази политика още продължава... е съвсем друг въпрос

Eric: I use my sword to detect good on it.
Ed: It's not good, Eric. It's a gazebo.
Ed: It's not good, Eric. It's a gazebo.
- The Dragon
- Elder God
- Posts: 9062
- Joined: Wed Jan 14, 2004 9:03 pm
- Moridin
- Global Moderator
- Posts: 19290
- Joined: Fri Dec 19, 2003 10:21 pm
- Location: On the other side
- Contact:
Абе някой да се е занимавал с wsdl по-сериозно?
Поддържа ли се възможност някой от класовете, в случая клас, който е типът на резултата на уеб-метод, да се опише така, че оригиналните му полета, които са константи, да влязат във wsdl-а?
пример (java)
class Result {
public static final int ERROR = 0;
public static final int SUCCESS = 1;
private int code;
getCode()..
setCode()..
}
после в сървиса да кажем някъф метод:
public Result alabala() {.... }
идеята е във wsdl-a този клас Result да му се виждат константите, щото в противен случай клиента, който си го генерира по wsdl-а, няма да може да детектне какъв е кода на грешката, а ще получи само един нищонезначещ за него int.
Сега ясно, че ПРИНЦИПНО wsdl-а не е мислен за това, но понеже реално не виждам какво пречи да има и такъв елемент в него (който описва константи), тъй като това не е нищо динамично и не нарушава bean contract-а...
А да, не питайте що не ползваме exceptions, не го решавам аз
Поддържа ли се възможност някой от класовете, в случая клас, който е типът на резултата на уеб-метод, да се опише така, че оригиналните му полета, които са константи, да влязат във wsdl-а?
пример (java)
class Result {
public static final int ERROR = 0;
public static final int SUCCESS = 1;
private int code;
getCode()..
setCode()..
}
после в сървиса да кажем някъф метод:
public Result alabala() {.... }
идеята е във wsdl-a този клас Result да му се виждат константите, щото в противен случай клиента, който си го генерира по wsdl-а, няма да може да детектне какъв е кода на грешката, а ще получи само един нищонезначещ за него int.
Сега ясно, че ПРИНЦИПНО wsdl-а не е мислен за това, но понеже реално не виждам какво пречи да има и такъв елемент в него (който описва константи), тъй като това не е нищо динамично и не нарушава bean contract-а...
А да, не питайте що не ползваме exceptions, не го решавам аз

This is it. Ground zero.
- The Dragon
- Elder God
- Posts: 9062
- Joined: Wed Jan 14, 2004 9:03 pm
And the daily comic relief
Американец съди Google за 5 млрд. долара
26 Септември 2007, 14:36
Източник: БГНЕС
В САЩ беше внесен иск срещу компанията Google на стойност 5 милиарда долара за „престъпление срещу човечеството”.
Дилън Стивън Джейн от Пенсилвания е внесъл иск срещу Google за компенсация на причинените му морални щети, съобщава „Компюлента”. В написания на ръка иск Дилън Стивън Джейнс посочва, че ако цифрите от номера на неговата карта за социална застраховка бъдат обърнати „нагоре с краката”, се получава думата „google”. Така според Джейн компанията Google поставя живота му под заплаха, тъй като престъпниците могат да се възползват от номера на картата. Като компенсация ищецът иска съдът да нареди Google да му изплати 5 милиарда долара. Не е обаче съвсем ясно от кого точно мъжът иска да получи парите, тъй като в исковата молба като ответници се посочват и основателите на Google Сергей Брин и Лари Пейдж, и самата компания Google. Засега няма коментар от страна на Google. /БГНЕС
The sinking of the Titanic was a miracle to the lobsters in the ship's kitchen.
- Roamer
- Ascendent
- Posts: 4895
- Joined: Wed Jan 03, 2007 5:25 pm
- Location: Hier ist hier und jetzt ist jetzt doch jetzt ist jetzt schon nicht mehr da...
- Contact:
Не толкова сериозно, колкото би ми се искало, а дотолкова, доколкото съм се занимавал, е било с технологии, за които се опитвам да забравя (и, да, това включва Java и .NET и Axis и IIS и още няколко подобни нещицаMoridin wrote:Абе някой да се е занимавал с wsdl по-сериозно?

Ми... тако'ата... всъщност не. Всичко се съдържа в това, което сам казваш - че принципно WSDL не е мислен за това. Перефразирай това твое изказване до "във WSDL стандарта няма описани константи", след което го обърни това към "дори и да намеря някакъв начин да предавам стойностите на константите между реализация X и реализация Y, няма да имам никакви гаранции, че утре, когато прехвърлим нещата на реализация Z, това още ще работи"... и ще видиш защо казвам "всъщност не"Moridin wrote:Поддържа ли се възможност някой от класовете, в случая клас, който е типът на резултата на уеб-метод, да се опише така, че оригиналните му полета, които са константи, да влязат във wsdl-а?
пример (java)
class Result {
public static final int ERROR = 0;
public static final int SUCCESS = 1;
...
Сега ясно, че ПРИНЦИПНО wsdl-а не е мислен за това, но понеже реално не виждам какво пречи да има и такъв елемент в него (който описва константи), тъй като това не е нищо динамично и не нарушава bean contract-а...

Какво да правиш оттук нататък? Ами като изключим очевидното "ми включваме списъка с константите и стойностите им в техническата докиментация и се надяваме да успяваме да ги държим синхронизирани", имаш основно два варианта:
1. Не използваш чисти константи, а дефинираш функции, които да връщат като резултат константата; хората, които са ползвали примерно Perl и неговите "use constant", би трябвало да знаят за какво говоря. Разбира се, не говорим за реализация порода "ми викаме функцията, после правим if (res == wsdl.ERROR()) { ... }, после викаме друга функция, после пак if (res2 == wsdl.ERROR())", щото всяко такова "извикване" на функцията ще бъде всъщност обръщение към уеб-услугата, а ти не искаш чак толкова много трафик

2. Може би малко по-добро решение, или поне малко повече в духа на уеб-услугите - изброени класове:
съобщение в пощенски списък, описващо идеята
Тук очевидният проблем е, че не можеш да задаваш истински стойности на "константите", и че ако различните платформи ги задават различни, ще стане не боза, ами и аз не знам какво.
Другият проблем е, че... не можеш да задаваш истински стойности на константите

typedef enum {
ERR_NONE = 0,
ERR_NOMEM = 1,
ERR_CMDLINE = 2,
...
ERR_ID10T_USER = 14,
ERR_ID10T_MYSELF = 15,
ERR_LAST = 15
} err_t;
...и после да мога да скимтя if (err > ERR_LAST) и да правя други благинки като const char *errstr[ERR_LAST + 1] = {"...", "...", ...};
Разбира се, бих могъл да си пренапиша нещата така, че вместо ERR_LAST да имам ERR_INVALID с първата невалидна стойност, но... абе... таковата... мрррзи ме да си променям навиците

Да бе... да взема и да питам що не ползваш exceptions... как беше онова, библейското - "който няма грях, да хвърли първи камък"... предста'аш ли си баш за WSDL и exceptions да те питамMoridin wrote:А да, не питайте що не ползваме exceptions, не го решавам аз

Eric: I use my sword to detect good on it.
Ed: It's not good, Eric. It's a gazebo.
Ed: It's not good, Eric. It's a gazebo.
- Moridin
- Global Moderator
- Posts: 19290
- Joined: Fri Dec 19, 2003 10:21 pm
- Location: On the other side
- Contact:
Абе виж, то с една йерархия от ексепшънчета, които са абсолютно почтипразни класове (и следователно идеални за жицата) и които да се маскват от някакъв дженерик ексепшън на уеб-сървис-клиент енджина, всичко заспива всъщност.. ама пък е досадно за писане 
Иначе мерси за пространния пост - виждам го, след като реших проблема, но доста добре описваш и моето гледище и lore по въпроса
В крайна сметка стана като пич с enum. Аз се съмнявах, понеже енумите са доста нови за джава, но стана.
Вярно, джава енумите не са просто числа като в С, но като изключим неудобството на тайп-сейфетито, което се преодолява сравнително елементарно, имат доста големи предимства и изобщо са най-яките енуми, които съм виждал.
За справка гугъл веднага помага с http://java.sun.com/j2se/1.5.0/docs/gui ... enums.html
и един красив пример оттам:
public enum Operation {
PLUS { double eval(double x, double y) { return x + y; } },
MINUS { double eval(double x, double y) { return x - y; } },
TIMES { double eval(double x, double y) { return x * y; } },
DIVIDE { double eval(double x, double y) { return x / y; } };
// Do arithmetic op represented by this constant
abstract double eval(double x, double y);
}
Някои хора биха казали, че подобни екстри се отклоняват твърде от идеята на енума и че същото може да бъде постигнат с енум поле и суич по него в обхващащ клас, но аз лично се кефя на езици с повече екстри, плюс това да правиш специален обгръщащ клас за тая функционалност е нарушаване на красивата връзка модел от реалния свят <-> програмна реализация, която се наблюдава в примера горе.
едит: този сървис се ползва само от джава, така че проблемът с различните платформи не стои

Иначе мерси за пространния пост - виждам го, след като реших проблема, но доста добре описваш и моето гледище и lore по въпроса

В крайна сметка стана като пич с enum. Аз се съмнявах, понеже енумите са доста нови за джава, но стана.
Вярно, джава енумите не са просто числа като в С, но като изключим неудобството на тайп-сейфетито, което се преодолява сравнително елементарно, имат доста големи предимства и изобщо са най-яките енуми, които съм виждал.
За справка гугъл веднага помага с http://java.sun.com/j2se/1.5.0/docs/gui ... enums.html
и един красив пример оттам:
public enum Operation {
PLUS { double eval(double x, double y) { return x + y; } },
MINUS { double eval(double x, double y) { return x - y; } },
TIMES { double eval(double x, double y) { return x * y; } },
DIVIDE { double eval(double x, double y) { return x / y; } };
// Do arithmetic op represented by this constant
abstract double eval(double x, double y);
}
Някои хора биха казали, че подобни екстри се отклоняват твърде от идеята на енума и че същото може да бъде постигнат с енум поле и суич по него в обхващащ клас, но аз лично се кефя на езици с повече екстри, плюс това да правиш специален обгръщащ клас за тая функционалност е нарушаване на красивата връзка модел от реалния свят <-> програмна реализация, която се наблюдава в примера горе.
едит: този сървис се ползва само от джава, така че проблемът с различните платформи не стои

Last edited by Moridin on Wed Sep 26, 2007 10:21 pm, edited 1 time in total.
This is it. Ground zero.
Who is online
Users browsing this forum: No registered users and 41 guests