Gå til innhold

Anbefalte innlegg

Vel, en ting er å sende en mail med vedlegg. En annen ting er å lage ett fullt funksjonelt P2P nettverk.

Denne tråden handlet om å sende mail med vedlegg.

 

Greit nok at Indy er opensource' date=' men ikke kom å si at å proppe en form full av komponentikoner er bedre enn å kode det sjæl.[/quote']

Jo i mange tilfeller vil det nok være det. Kanskje ikke alltid, men i de fleste tilfeller. En annen ting er at man trenger ikke droppe en haug med komponenter på en form. F.eks. går det fint an å lage seg en egen liten rutine som dynamisk oppretter en instans av en TSendMailMedVedlegg-komponent, sender vedlegg og frigjør komponenten igjen. På slik små ting som det her er snakk om er det en fremgangsmåte jeg bruker veldig mye. Videre er det veldig vanlig å dele opp applikasjonen sin en del dersom man har bruk for hundre komponenter. På den måten vil du kanskje ende opp med bare noen få komponenter i hver modul.

 

Jeg har til og med sett folk bruke en egen komponent' date=' for å kopiere en fil. Det er bullshit.[/quote']

Ja.

 

Hvis du går litt ut fra dette forumet hvor flesteparten <snip> ligger på nybegynner-stadiet' date=' og går ut i verden, vil du finne ut at det i virkeligheten ikke er altfor mange som faktisk sitter 9 av 10 timer på Google søkende etter komponenter å putte sammen. Grunnen til at Delphi ofte blir kalt n00bspråket er nettopp fordi det lar deg skru vegger sammen til hus uten å kunne en dritt./QUOTE']

Må gi deg litt rett her. Har man en gang trukket frem nettopp dette punktet som det eneste aberet med Delphi. Det er veldig lett og fort gjort å 'klikke sammen' et datasystem i delphi. Problemet er dersom kunden ønsker seg noe litt utover det man kan sette med properties, eller enda værre - dersom noe feiler... Da sliter man... Syns det er veldig viktig med grunnleggende forståelse for programmering og god kjennskap til språket man bruker. Det samme gjelder for såvidt VB...

 

Men der stopper enigheten. Som tidligere nevnt er det faktisk mer utstrakt burk av komponenter i det profosjonelle markedet enn du tydeligvis tror. Nei - man sitter ikke 9 av 10 timer på google. Man sitter 9 av 10 timer med sitt problemområde. Den siste timen bruker man på å putte sammen resten av applikasjonen rundt løsningen av problemet. Ta f.eks. et veldig bra verktøy - TestComplete fra AutomatedQA. Ta og se litt på skjermklippene som ligger på sidene deres. Deres ekspertise ligger i automatisert testing. Hvor mye tid tror du de har til å utvikle syntax-highlighting og skripteksekvering? Tabellene de bruker for å presentere resultatet i - hvor lang tid tror du de har brukt på lage den komponenten? Skriptmotoren har Ms lagd. Griddet skulle det ikke forundre meg om DevExpress står for.

 

Riktignok har TestComplete gjort docking til sitt ekspertområde - antagelig fordi de ikke fant en komponent som ga dem det de trengte. Dette har de da gjort til et produkt slik at de kan tjene inn kostnadene de hadde ved utviklingen av denne.

 

Microsoft er i en tilsvarende særstilling. De er ikke bare en produktutvikler - de er også en komponent-, system- og os-utvikler. Det er de som har lagd protokollstacken i windows. Det er de som har lagd biblioteket som gir andre tilgang til denne. De har også utviklingsverktøy i sin portofølje og har dermed også laget en inkapsling av dette biblioteket for å gjøre ting enklere og mer attraktivt for sine kunder. Du kan godt si at MS er et konsern med mange selvstendige selskaper. F.eks. finnes det en del som lager office-produktene, men det er ikke de som lager komponentene som er brukt. Det er det en annen avdeling som gjør. De har en fordel siden office-avdelingen kan si til den andre avdelingen at 'vi vil ha slik og slik', mens vi andre må ta til takke med det vi finner rundt om kring. Men tro ikke at de har laget alt selv av den grunn. Masse av det MS setter navnet sitt på er kjøpt opp av andre.

 

Jeg er ingen dårlig programmerer' date=' og nettopp derfor vil jeg ha full kontrol over hva programmet mitt er....[/quote']

Ingen som har sagt noe mot at du er en god programmerer. Men det hjelper lite å være en god programmerer. For å få penger til mat må du være bedre enn de andre. Før eller siden må du da innse at du ikke klarer å nå over alt. Man er nødt til å finne seg en nisje som man kan hevde seg i. Du kan kanskje skrive en p2p-protokoll vha TCustomTCPSocket bedre enn vha Indy, men at du kan skrive en generelll TCP-klient bedre enn Indy tror jeg ingen tingen på. For å lage en syntax-highlighter trenger du en parser for det språket du skal støtte. Kom ikke her og påstå at du helt på egenhånd uten å rippe kode på noen timer klarer å lage en pascal-parser bedre enn f.eks. TmwPasLex skrevet av Martin Waldenburg og brukt i veldig mange komponenter og verktøy. Så god er du bare ikke, og så god er heller ikke jeg. Derfor bruker jeg TmwPasLex (som tar meg mindre enn en time og finne/laste ned/ta i bruk når jeg har behov for en pascal-tokenizer.

 

En annen ting jeg lurer på er hvorfor det å skrive en ny TRichEdit er å finne opp hjulet på nytt og ikke det å skrive en syntax-highlighter? Hva er forskjellen? SMTP-protokollen er også implementert x-antall ganger før. Hvorfor er det ikke å finne opp hjulet på nytt ved å implementere denne nok en gang? Hvorfor vil ikke P2P-programmet ditt være 'fully functional' dersom komponenten du bygger på i tillegg til å sende data fra et buffer også har muligheten til å sende data fra en fil?

 

Har forøvrig alltid skilt mellom det å være fjortis og det å være fjorten år.

 

-Vegar (som ikke har så mange, men veldig lange, innlegg...)

 

Edit: Hvorfor i alle dager funger ikke [ QUOTE ]-taggene??

Endret av Format71
Lenke til kommentar
Videoannonse
Annonse

Yup, er egentlig stort sett enig i det meste over. Har noen meninger å legge inn:

 

- P2P programmet mitt ville ikke vært fully functional om den hadde sendt direkte fra en fil, fordi da ville ikke funksjonene jeg har lagd for caching av hyppigste overførte småfiler virke, og harddisken ville blitt mer loada enn nødvendig.

 

- TCustomIPClient har alt som er nødvendig for å enkelt nok lage nye funksjoner, som ja, kan slå idTCPClient. Det jeg ikke liker med idTCPClient er at den har så altfor mye dritt jeg ikke trenger (for å ikke snakke om idTCPServer, med de command handlerne sine). TCustomIPClient kan connecte til IP/Domain, holde tilkoblingen oppe, sjekke når som helst om tilkoblingen fremdeles er oppe, disconnecte, sende XX byte terminerte stringer, motta XX byte terminerte stringer, sende buffer, motta buffer, hva mer trenger jeg? Disse command handlerne ville aldri i verden ha funka bra inn i mitt P2P system, fordi det er bygd opp HELT anderledes. Added: Leste litt nøyere, og ja, ett P2P program kan lages mye bedre med TCustomIPClient, enn med idTCPClient fordi Indy har for mye du ikke trenger (resulterer mer minnebruk), og at jeg slepper å definere hver enkelt funksjon jeg bruker med tusen On E<ditt> Do <datt> (eller bruke gjøre alle errors felles ved å bare bruke Except) for å i heletatt gjøre programmet errormessage-fritt. Med TCustomIPClient kan overføringsfeil, conectingsfeil, osv... enkelt bli detecta, men da kan du gjøre som du vil med det, uten å definere hver enkelt exception Indy kan finne på å raise.

 

For P2P programmet mitt har jeg allerede lagd disse komponentene:

TMultiListbox (GUI-et for download manageren) -> 1 dag

 

TIconToolbar (ett GUI for å bruke grafikk som toolbar knapper, med eget mouse-over bilde, og eget mousedown bilde) -> 20 min

 

TConnections (en kontroller for min egen BP2P++ protocol for P2P nettverkets klienter/servere) -> Noen dager, jobber fortsatt med detta (tar tid å lage ett feilfritt, exploitfritt, og bra P2P nettverk)

 

 

De to visuelle komponentene har jeg valgt å gjøre sjøl. TMultiListbox på grunn av de mange små detaljene den må kunne vise, som for eksempel den progressbaren i lista, ikoner ved sidna, egne ikoner hvor som helst i en kollonne sammen med tekst). Og den toolbaren ganske enkelt fordi det tar nesten kortere tid å lage den, enn å searche Google for en freeware som passer mine behov.

 

 

Alt i alt syns jeg egentlig folk burde lære å ikke få alle komponenter servert oppi henda :), men jeg er helt enig i at hvis du lager ett desktop cleaner program, hvor du skal ha en liten link på About formen som sier send en mail, så er det like greit å droppe på en idSMTP enn å programmere den fra bånn av, men hvis du lager ett epost program, så ville jeg helt klart lagd den fra bånn av.

 

 

 

Added: Ganske enig på den siste delen. Microsoft Windows er stort sett ikkeno annet enn en bootkernel, og en svær sammling av API-er, og funksjoner. Ikke er Windows noe sikkert eller i forhold til Linux, som faktisk ikke må oppdateres hver uke (litt overdrivi, men ikke langt unna).

Endret av chrml
Lenke til kommentar
selv om det tar deg toppen noen timer med skriving å lage en sjæl for enkle språl som Basic

 

Nå sa jeg faktisk det, og ikke 35 languages. Hvis jeg skulle trengt noen syntax editorer for ett egenlagd script språk, ol, ville jeg nok lagd min egen, men skulle jeg tilfeldigvis lage en IDE for PHP for eksempel, ville jeg nok brukt SynEdit.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...