[OOP] Goede aanpak?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software developer (Python)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en houden ze zo nu en dan pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Je hebt in je werk oog voor kwaliteit, risico’s en het klantbelang. Communicatie met

Bekijk vacature »

Back-End Web Developer

Als Back-End Web Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn. Wat doe je als Back-End Web Developer bij Coolblue? Als Back-End Web Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Als backend developer weet je de weg in PHP, kan je in Typescript een microservice op zetten of ben je bereid om dit te leren. Ook Web Backend Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen PHP

Bekijk vacature »

Experienced Lead Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Delft Vacature ID: 13301 Introductie We are seeking a Lead Java Developer for our team in the area of Delft. You will develop an application used exclusively by the engineers and geologists for site characterizations, which imports raw field and laboratory measurements for further processing, integration, ground modelling, and geotechnical analysis and reporting. The client/server application is entirely written in Java, and the server is hosted in the Amazon cloud, utilizing frameworks such as Spring and Hibernate, and connected to an MS SQL Server RDS instance. There is a trend towards using more

Bekijk vacature »

Embedded Developer C++

Functie omschrijving Ben jij op zoek naar een leuke uitdaging als Embedded Developer, zoek dan niet verder! Voor een leuke opdrachtgever in omgeving Rotterdam zijn wij op zoek naar een Embedded Developer die graag met Embedded Devices werkt. Je zult verantwoordelijk worden voor het ontwikkelen en onderhouden van diverse producten. Jouw specialisatie ligt op het vlak van software, hardware en back-end. Dit bedrijf is gespecialiseerd in het ontwerpen van software voor een unieke industrie. Wil jij betrokken worden bij een proces dat loopt van ontwikkeling tot installatie? Waarbij je bezig zult zijn met perfecte systemen die geleverd worden aan binnen

Bekijk vacature »

Ervaren PHP developer gezocht!

Functie Het team bestaat inmiddels uit zo’n 25 collega’s met specialisten op het gebied van development, data(analyse), marketing, infrastructuur en finance. Ze hebben een supermodern pand en bieden hiernaast veel vrijheid en verantwoordelijkheid. Ze doen er alles aan om jou op te gemak te stellen. Zo kun je je eigen werkplek inrichten naar persoonlijke wensen, maar gaan ze bijvoorbeeld ook jaarlijks met elkaar wintersporten en zijn er andere leuke uitjes. Als onderdeel van één van de scrumteams ga je aan de slag, samen ben je medeverantwoordelijk voor het doorontwikkelen van hun business applicatie waar het traffic team dagelijks mee werkt.

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET Core developer wordt jij onderdeel van ons team met drie breed ontwikkelde software engineers en een flexibele schil met zes ervaren freelancers. Jij gaat mee in de visie van onze organisatie om als IoT partner in deze branche specifieke markt “het” platform te blijven innoveren en deze ook steeds slimmer te maken. Wij hopen dan ook zeker dit in de toekomst te kunnen realiseren met bijvoorbeeld Artificial Intelligence. De architectuur van ons platform is opgemaakt uit een deel eigen protocol, een interface laag en een laag welke de protocollen van derde partijen vertaald naar het eigen

Bekijk vacature »

Full stack Python developer

Functie Samen met andere collega’s (een product owner, een software manager en een ervaren ontwikkelaar) ga jij onze producten verder ontwikkelen. Jouw verantwoordelijkheden zullen bestaan uit: – Verder wil gaan met de ontwikkeling van onze bestaande producten; nieuwe features! – Meedenkt over de roadmap van onze producten – Als sparringpartner kan optreden op het gebied van development – Zelf ook nieuwe ideeën op tafel durft te leggen en deze van scratch af aan wilt bouwen Hieronder ook een paar voorbeelden van projecten waar we momenteel mee bezig zijn of binnenkort aan willen beginnen: – Real-time interactie creëren in onze web

Bekijk vacature »

Medior C# Developer

You'll build modern applications for Coolblue's back office. We have a lot of friends, and they crave well-structured data and user-friendly, task-focused applications. How do I become a Medior C# Developer at Coolblue? You regularly participate in brainstorm sessions about user experience, data, and task flow with the UX Designer, Product Owner, and Data Scientists in your team. Besides that you will create disconnected, highly congruent, and testable code that can easily be maintained and is future-proof. Want to become C# Developer at Coolblue? Read below if the job suits you. You enjoy doing this Working with various types of

Bekijk vacature »

Software Developer / .NET / Azure

Dit ga je doen Als Lead .NET Software Developer zal je je bezig houden met: Het vertalen van bedrijfswensen naar een technische roadmap; Uitwerken van nieuwe architectuur / designs; Het team aansturen en motiveren; Toezien op de kwaliteit van de code; Mee ontwikkelen van nieuwe features en applicaties. Hier ga je werken Deze organisatie is op dit momenteel marktleider in het ontwikkelen van productielijnen voor de voedselindustrie en heeft een wereldwijd klantnetwerk. Binnen deze organisatie is het team van software developers dagelijks bezig met het ontwikkelen van maatwerk oplossingen om alle productiemachines aan te sturen, maar ook bedrijf kritische applicaties

Bekijk vacature »

SAP Integratie Ontwikkelaar

Ben jij ambitieus in de verdere ontwikkeling van SAP binnen HANOS, en heb je kennis van SAP PI, CPI (SAP integration suite) en of andere middleware tooling? Dan ben jij mogelijk onze nieuwe SAP Integratie (middleware) Ontwikkelaar! Lees snel verder en solliciteer! Wat ga je doen? Als SAP Financieel Consultant ben je, als deel van een gedreven team van interne SAP consultants, de schakel tussen de gebruikersorganisatie en ICT. Je draagt proactief bij aan een optimale aansluiting van de SAP-functionaliteit (een applicatielandschap met o.a. Suite on HANA, Fiori, Hybris, C4C en BO), op de bedrijfsprocessen. Verder ondersteun je de HANOS

Bekijk vacature »

Software Developer C++ en Perl

Ben je een slimme en enthousiaste universitair opgeleide bèta die graag bij een relatief klein softwarebedrijf wil werken waar de sfeer goed is en eigen inbreng gewaardeerd wordt? Wij, IntelliMagic in Leiden, ontwikkelen technisch hoogwaardige software op het gebied van IT infrastructuur performance analytics. Het type software zorgt voor intellectueel interessante uitdagingen. We ontwerpen de producten zelf en verkopen deze als off-the-shelf software aan grote bedrijven in Europa en de VS. Wij zoeken een ervaren C++ software engineer met kennis van Perl voor een van onze ontwikkelteams. Werkzaamheden Samen met de andere ontwikkelaars specificeren, ontwerpen en implementeren van nieuwe functionaliteit

Bekijk vacature »

Low code Developer

Dit ga je doen Je richt je op het doorontwikkelen van bestaande applicaties en het geheel van scratch af aan opzetten van nieuwe applicaties binnen een low code platform; Je beoordeelt technisch ontwerpen en maakt de vertaalslag naar de technische oplossingen binnen het platform; Je voert testwerkzaamheden uit; Je adviseert de organisatie op jouw vakgebied; Je schakelt met business analisten en de architect om tot mooie oplossingen te komen; Je lost bugs op en denkt mee over een structurele oplossing. Hier ga je werken Het gaat om een bekend internationaal handelsbedrijf met ruim 800 medewerkers, verdeeld over verschillende deelbedrijven. Deze

Bekijk vacature »

Node.js developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

PHP Laravel Ontwikkelaar

Functie omschrijving Weet jij alles over Laravel en krijg je energie van het developen van software hiermee? Laat het weten want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch voor klein bedrijf welke softwareoplossingen maakt voor hun klanten. Jouw taken hierbij: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Documentatie schrijven over applicaties. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein bedrijf. Er werken circa 15 medewerkers, verdeeld in meerdere teams, zoals back-end

Bekijk vacature »

Java Developer

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Pagina: 1 2 volgende »

Bram Boos

Bram Boos

28/03/2011 22:20:58
Quote Anchor link
Zo. Ik wil nou eens een keer mijn code in één keer goed doen vandaar dat ik wil vragen aan jullie: Klopt dit? Ik weet dat er geen standaarden zijn maar is het op deze manier efficient?

Artikel
-Artikel_id
-Titel
-Beschrijving
-Prijs
-BTW
+setArtikel_id
+setTitel
+setBeschrijving
+setPrijs
+setBTW
+getArtikel()

Voorraad
-Artikel_id
-Voorraad
+setArtikel_id
+setVoorraad
+getVoorraad()

Bestelling
-Artikel_id
-Aantal
+setArtikel_id
+setAantal
+getBestelling()

Winkelwagen
-Bestelling
+setBestelling
+getWinkelwagen()
Gewijzigd op 28/03/2011 22:47:09 door Bram Boos
 
PHP hulp

PHP hulp

18/04/2024 17:58:44
 

28/03/2011 22:39:28
Quote Anchor link
Waar komt artikel_id vandaan?
 
Bram Boos

Bram Boos

28/03/2011 22:40:16
Quote Anchor link
Karl Karl op 28/03/2011 22:39:28:
Waar komt artikel_id vandaan?


Van de klasse Artikel...
 

28/03/2011 22:43:18
Quote Anchor link
Bram Boos op 28/03/2011 22:40:16:
Karl Karl op 28/03/2011 22:39:28:
Waar komt artikel_id vandaan?


Van de klasse Artikel...


Bram Boos op 28/03/2011 22:20:58:
(...)
Artikel
-Titel
-Beschrijving
-Prijs
-BTW
+setTitel
+setBeschrijving
+setPrijs
+setBTW
+getArtikel()
(...)

Zakdoekje leggen,
Niemand zeggen,

rara, waar is artikel_id gebleven...?

Moet dit een soort van klassendiagram zijn?
 
Bram Boos

Bram Boos

28/03/2011 22:48:47
Quote Anchor link
Oeps, zo beter:

Artikel
-Artikel_id
-Titel
-Beschrijving
-Prijs
-BTW
+setArtikel_id
+setTitel
+setBeschrijving
+setPrijs
+setBTW
+getArtikel()

Ja als je het zo wilt noemen, zo probeer ik mij in ieder geval op het scripten voor te bereiden (nog nooit gedaan)..
 

28/03/2011 22:54:07
Quote Anchor link
Stellen de plusjes en minnetjes de visibility aan?
Hoe kom je dan aan de artikel_id?
 
Pim -

Pim -

28/03/2011 22:57:08
Quote Anchor link
En hoe ga je dit klassendiagram weergeven in je database?
 
Bram Boos

Bram Boos

28/03/2011 23:00:52
Quote Anchor link
Karl Karl op 28/03/2011 22:54:07:
Stellen de plusjes en minnetjes de visibility aan?
Hoe kom je dan aan de artikel_id?


De visibility heb ik hier geen rekening mee gehouden, misschien moet ik daar nog eens over na gaan denken...

Pim - op 28/03/2011 22:57:08:
En hoe ga je dit klassendiagram weergeven in je database?


De informatie (waaronder artikel_id) komt uit de database welke via een adapter klasse wordt opgehaald.
Gewijzigd op 28/03/2011 23:01:22 door Bram Boos
 

28/03/2011 23:06:44
Quote Anchor link
Bram Boos op 28/03/2011 23:00:52:
Karl Karl op 28/03/2011 22:54:07:
Stellen de plusjes en minnetjes de visibility aan?
Hoe kom je dan aan de artikel_id?


De visibility heb ik hier geen rekening mee gehouden, misschien moet ik daar nog eens over na gaan denken...

Pim - op 28/03/2011 22:57:08:
En hoe ga je dit klassendiagram weergeven in je database?


De informatie (waaronder artikel_id) komt uit de database welke via een adapter klasse wordt opgehaald.


Wat doen die plusjes en minnetjes dan? Dus jij wou gewoon uit een object zijn waarde van artikel_id gaan plukken? Dan ben je wel fout bezig vanuit god-hoe-heet-dat-nu-dan-principe-ik-ben-te-lang-met-assembly-bezig-geweest-owja-het-was: loose coupling high cohesion...
 
Pim -

Pim -

28/03/2011 23:28:51
Quote Anchor link
Eigenlijk moet je Bestelling het object Artikel laten dragen, niet de waarde artikel_id.
 

28/03/2011 23:34:15
Quote Anchor link
Pim - op 28/03/2011 23:28:51:
Eigenlijk moet je Bestelling het object Artikel laten dragen, niet de waarde artikel_id.


Oh, lol, zover had ik eigenlijk nog niet eens gekeken :-)
 
Gerard Nijboer

Gerard Nijboer

29/03/2011 00:42:56
Quote Anchor link
Visio bevat de mogelijkheid om UML-modellen te maken, zou je eens naar moeten kijken, helpt je vaak om dingen te visualiseren, maar ook om af en toe lekker te schuiven.
 
Bram Boos

Bram Boos

29/03/2011 20:04:45
Quote Anchor link
Tot nu toe heb ik dit gemaakt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
class Aanbieding
{
    private $_adapter;
    private $_artikelId;

    public function __construct(Adapter $_adapter,Artikel $_artikelId)
    {

        $this->_adapter = $_adapter
        $this
->_artikelId = $_artikelId;
    }


    public function getPrijs()
    {

        $aanbieding = $this->_adapter->getArtikel($this->_artikelId);
        return $aanbieding['prijs'];
    }
}


class Voorraad
{
    private $_adapter;
    private $_artikelId;

    public function __construct(Adapter $_adapter, Artikel $_artikelId)
    {

        $this->_adapter = $_adapter;
        $this->_artikelId = $_artikelId;
    }

    
    public function getVoorraad()
    {

        return $this->_adapter->checkVoorraad($this->_artikelId);
    }
}


class Item
{
    private $_aantal;

    public function __construct(Artikel $Artikel_id, $_aantal)
    {

        $this->Artikel_id = $Artikel_id;
    }

    public function addItem()
    {

                    $this->_items[] = array

                    (

                         'id' => $Id,

                         'prijs' => $Prijs,

                        'aantal' => $Aantal

                     );
    }

    public function getBestelling()
    {

        return $this->_items;
    }
}



class Winkelwagen
{
    private $_aantal;

    public function __construct(Artikel $_artikelId, $_aantal)
    {

        $this->_artikelId = $_artikelId;
    }


    public function getTotaal()
    {

        foreach ($this->_item as $Wagen)
        {

            return $Wagen['prijs'] * $Wagen['aantal'];
        }
    }

}


?>

Er zullen nog wat foutjes in zitten want ik moest even snel...
 

29/03/2011 20:05:40
Quote Anchor link
En je hebt geen klassendiagram gemaakt? :-/ Ik dacht dat je het officieel wou doen.
 
Bram Boos

Bram Boos

29/03/2011 21:49:47
Quote Anchor link
Karl Karl op 29/03/2011 20:05:40:
En je hebt geen klassendiagram gemaakt? :-/ Ik dacht dat je het officieel wou doen.


Ja en nee. Ik heb geen idee hoe ik zo'n diagram zou moeten maken. Vandaar dat ik misschien maar wat code moest plaatsen om het te verduidelijken...
 
Jelmer -

Jelmer -

30/03/2011 09:12:12
Quote Anchor link
Maak het nu nog even werkend en verzin er dan eens een heel klein scriptje bij waarin je het gebruikt. De Adapter vervang je dan even met een eigen class die gewoon werkt met arrays en hard-coded artikelen en geen db, maar die van buiten wel lijkt op de echte adapter.

Eigenlijk maak je een soort testcase, alleen gebruik je hem nu niet alleen om te testen of je objecten doen wat ze moeten doen, maar vooral om te kijken of je niet iets vergeten bent. Pas wanneer je probeert je classes te gebruiken zal je merken dat sommige dingen onhandig zijn of helemaal niet kunnen (hoe kom ik nu bij de prijs van dit product!? hoe kan ik nu dat ene product uit het winkelwagentje halen?!)


Iets simpels als dit, het liefst zo dom mogelijk want het is alleen maar even om te kijken of je class-interface volledig is.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
session_start();

$adapter = new Adapter(); // dummy

if (!isset($_SESSION['wagen']))
    $_SESSION['wagen'] = new Winkelwagen($adapter);

if (isset($_POST['action']))
{

    if ($_POST['action'] == 'add' && isset($_POST['artikel_id']))
    {

        foreach ($_POST['artikel_id'] as $artikel_id)
        {

            $artikel = $adapter->getArtikel($artikel_id);
            $_SESSION['wagen']->addItem($artikel);
        }
    }

    else if ($_POST['action'] == 'del' && isset($_POST['index']))
    {

        foreach ($_POST['index'] as $index)
            $_SESSION['wagen']->removeItem($index);
    }    
}


echo '<form method="post">';
echo '<input type="hidden" name="action" value="add">';

foreach ($adapter->getArtikelen() as $artikel)
    echo '
    <label>
        <input type="checkbox" name="artikel_id[]" value="'
. $artikel->id() . '">
        '
. $artikel->naam() . '
    </label><br>
    '
;

echo '<button type="submit">Voeg toe aan wagen</button>';
echo '</form>';

echo '<form method="post">';
echo '<input type="hidden" name="action" value="del">';

foreach ($_SESSION['wagen']->getArtikelen() as $index => $artikel)
    echo '
    <label>
        <input type="checkbox" name="index[]" value="'
. $index . '">
        '
. $artikel->naam() . '
    </label><br>
    '
;

echo '<button type="submit">Verwijder uit wagen</button>';
echo '</form>';
?>
 
Bram Boos

Bram Boos

30/03/2011 16:18:30
Quote Anchor link
Ik vraag mij nu af waarom je de Item class niet gebruikt? Of is die overbodig?
 
Jelmer -

Jelmer -

30/03/2011 17:16:08
Quote Anchor link
Geen idee. Dat scriptje van mij hierboven was even een voorbeeldje van wat ik bedoel met "een simpel scriptje", en is hoe ik een simpele winkelwagen zou doen. Ik heb niet echt goed gekeken naar welke methods jij je classes hebt gegeven.
 
Bram Boos

Bram Boos

30/03/2011 17:28:03
Quote Anchor link
Owh okee, ik zal vanavond eens bezig...
 
Niels K

Niels K

30/03/2011 18:46:28
Quote Anchor link
Winkelwagen als object? Wil je dat wel?

Het is heel strict gezegd toch alleen maar order met order - items?
Want getTotaal in je winkelwagen? Dat is toch niet iets wat je van winkelwagen moet verkrijgen, dat moet juist in de winkelwagen getoond worden.

Op je order objecten moet je een methode getTotal krijgen. En hoe doe je het met verzendkosten, endergelijke? Eigenlijk wil je die misschien ook wel als 'order-item' opslaan.

Is alleen mijn mening maar ;)

Edit:

btw op artikel niveau? Dat is toch ook iets wat je in je order pas berekend?
En over voorraad. Eigenlijk wil je artikelen in de webshop zonder voorraad niet eens tonen? (Artikel filter?)

En hoe haal jij categorieën op? En hoe koppel je artikelen aan een categorie?
Volgens mij wordt het tijd voor vragen en deelvragen.

Weet eerst zeker wat je wilt gaan bouwen en begin niet lukraak.
Gewijzigd op 30/03/2011 18:50:06 door Niels K
 
Bram Boos

Bram Boos

30/03/2011 20:26:05
Quote Anchor link
Nee, dat wil ik eigenlijk niet maar je moet wat...

Ik zit eigenlijk met het probleem dat mijn vorige OOP projecten meer een verzameling functies in een class was dan een OOP.

Hierdoor wil ik mij nu eens ècht gaan verdiepen... Nu wil ik dus eerst een klassediagram maken maar daar loop ik al vast. Daarom ben ik maar begonnen met het scripten en had ik gehoopt daarna een klasendiagram te kunnen maken...
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.