Tefito

He aha nga tauira hoahoa: he aha te whakamahi, te whakarōpūtanga, te pai me te kino

I roto i te miihini rorohiko, ko nga tauira hoahoa he otinga tino pai ki nga raru ka puta i roto i te hoahoa rorohiko.

He rite ratou ki nga kaupapa o muadefiI nga wa o mua, nga taputapu whakamatau me te whakamatau ka taea e koe te whakarite ki te whakaoti rapanga hoahoa auau i roto i to waehere.

Te taima panui: 6 minuti

He aha te Tauira Hoahoa

Ko te tauira hoahoa ehara i te waehere ka taea e tatou te kape me te whakauru ki roto i ta maatau kaupapa, ka taea e taatau ki nga mahi paerewa, whare pukapuka ranei. Ko te tauira hoahoa he ariā whanui ka taea te whakaoti rapanga. Ko te tikanga he tauira ka taea e tatou te whai me te whakatinana i tetahi otinga e tika ana mo to tatou kaupapa.

He maha nga wa e rangirua ana nga tauira ki nga algorithms, na te mea ko nga ariā e rua e whakaatu ana i nga otinga angamaheni ki etahi raru e mohiotia ana. Ahakoa he algorithm defiMēnā he mārama ngā mahi ka taea te whakatutuki i tētahi whāinga, ko te tauira he whakaahuatanga taumata teitei ake o te otinga. He rereke pea te waehere mai i te tauira kotahi i hoatu ki nga kaupapa rereke e rua.

I te hiahia ki te whakataurite, ka taea e tatou te whakaaro mo te tunu tunu kai: he maamaa nga huarahi e rua ki te whakatutuki i tetahi whaainga. Heoi ano, he rite tonu te tauira ki te kaupapa, ka taea e koe te kite he aha te hua me ona ahuatanga, engari ko te tikanga tika o te whakatinanatanga ka whakawhirinaki ki a maatau te tuhi i te waehere.

He aha te ahua o te Tauira Hoahoa?

Ko te nuinga o nga tauira he tino korero okawa kia taea ai e te tangata te whakaputa ano i roto i nga horopaki maha. Kia kite tatou i raro i nga huānga kei roto i te whakaahuatanga o te tauira:

  • Ko te koronga o te tauira e whakaatu poto ana i te raruraru me te otinga.
  • Te hihiri he whakamarama ano i te raruraru me te otinga ka taea e te tauira.
  • Hanganga o nga karaehe e whakaatu ana i ia wahanga o te tauira me te pehea e hono ai.
  • Ko te tauira waehere i roto i tetahi o nga reo whakamaori tino rongonui ka maamaa ake te maarama ki te whakaaro kei muri o te tauira.

He aha te whakamahi i a raatau?

Ka taea e te kaitakataka te hanga rorohiko me te kore e mohio ki te noho o nga tauira hoahoa. He maha nga mahi, na konei ka whakatinanahia etahi kaupapa me te kore e mohio. Engari he aha te take me whakapau taima ki te ako i a raatau?

  • Ko nga tauira hoahoa he kete o nga otinga kua whakamatauria ki nga raruraru noa i roto i te hoahoa rorohiko. Ahakoa kaore koe e pa ki enei raru, he pai tonu te mohio ki nga tauira na te mea ka ako koe me pehea te whakaoti rapanga katoa ma te whakamahi i nga kaupapa hoahoa-ahua.
  • Ko nga tauira hoahoa defiKa waihangahia e ratou he reo noa ka taea e koe me to roopu te whakamahi kia pai ake te whakawhitiwhiti korero. Ka taea e koe te ki atu, "Aue, whakamahia he Singleton ki te mahi i tenei," ka mohio nga tangata katoa ki te whakaaro i muri i to whakaaro. Kaore he take ki te whakamarama he aha te mea kotahi mena ka mohio koe ki te tauira me tona ingoa.

Te whakarōpūtanga o nga Tauira Hoahoa

He rereke nga tauira hoahoa i roto i te uaua, te taumata o nga korero, me te tauine o te whakamahi puta noa i te punaha hoahoa.

Ma te whakataurite, ka taea e tatou te noho haumaru ma te whakauru i etahi rama rama, te hanga ranei i tetahi whakawhitinga taumata-maha katoa me nga huarahi o raro mo te hunga hikoi.

Ko nga tauira tino taketake, taumata-iti e kiia ana kīwaha . Ko te tikanga ka tono noa ki te reo hotaka kotahi.

Ko nga tauira tino ao me te taumata teitei tauira hoahoanga . Ka taea e nga kaiwhakawhanake te whakatinana i enei tauira ki nga reo katoa. Kaore i rite ki etahi atu tauira, ka taea te whakamahi hei hoahoa i te hoahoanga o te tono katoa.

I tua atu, ka taea te whakarōpūhia nga tauira katoa kia rite ki o raatau whakamatauria kaupapa ranei. Ko nga akomanga matua e toru ko:

Panui houtanga
Kaua e ngaro nga korero tino nui mo te mahi auaha. Waitohu ki te whiwhi i a raatau ma te imeera.
  • Nga tauira hangahanga ka whakaratohia e ratou nga tikanga hanga ahanoa hei whakanui ake i te ngawari me te whakamahi ano i te waehere o naianei.
  • Nga tauira hanganga ka whakamaramatia me pehea te whakahiato taonga me nga karaehe ki roto i nga hanganga rahi ake, kia ngawari, kia pai hoki enei hanganga.
  • Nga tauira whanonga ka mahi ratou ki te whakawhitiwhiti korero me te tuku kawenga i waenga i nga taonga.

Tauira o te Tauira Hoahoa i Laravel: Facade

Toi he tauira hoahoa hanganga e whakarato ana i te atanga ngawari ki te whare pukapuka, ki te anga, ki etahi atu huinga karaehe uaua ranei.

Te raru

Me whakaaro tatou me mahi rorohiko, i runga i te huinga maha o nga taonga no roto i te whare pukapuka, anga anga ranei. Ko te tikanga, me arawhiti tatou i enei mea katoa, kia mau ki nga whakawhirinakitanga, mahia nga tikanga i runga i te raupapa tika, me era atu.

Ko te mutunga mai, ka piri te arorau pakihi o nga karaehe ki nga taipitopito whakatinanatanga o nga karaehe tuatoru, ka uaua ki te mohio me te whakahaere.

Rongoā

una facade he karaehe e whakarato ana i te atanga ngawari ki tetahi puunaha iti uaua he maha nga waahanga neke. A facade he iti noa nga mahi ka whakaritea ki te mahi tika me te punaha iti. Heoi, kei roto anake nga ahuatanga e tino aro nui ana nga kaihoko.

Kia kotahi facade he mea whai hua ina hiahia tatou ki te whakauru i te taupānga me tetahi whare pukapuka maamaa he maha nga ahuatanga, engari he iti noa te waahanga o tana mahi.

Hei tauira, ka taea e tetahi taupānga e tuku ana i nga ataata rorirori poto me nga ngeru ki nga paapori paapori ka taea te whakamahi i te whare pukapuka tahuri ataata ngaio. Heoi, ko nga mea katoa e tino hiahiatia ana e matou he karaehe me te tikanga kotahi encode(filename, format). I muri i te hanga i taua akomanga me te hono atu ki te whare pukapuka whakawhiti ataata, ka riro i a maatau te tuatahi facade.

Hei tauira, he rite te kaiwhakahaere waea o te pokapu waea a facade. Inaa, ka waea atu tatou ki te ratonga waea a te toa ki te tuku i tetahi ota waea, na tatou te kaiwhakahaere facade ki nga ratonga me nga tari katoa o te toa. Ka whakaratohia e te kaiwhakahaere he atanga reo ngawari ki te punaha tono, nga huarahi utu me nga momo ratonga tuku.

He tauira pono i roto i te PHP

Whakaarohia Toi hei urutau ngawari mo etahi punaha iti uaua. Facade ka wehe i te matatini i roto i te akomanga kotahi ka taea e etahi atu waehere tono te whakamahi i te atanga ngawari.

I tenei tauira, Facade ka huna i te uaua o te API YouTube me te whare pukapuka FFmpeg mai i te waehere kiritaki. Engari ki te mahi me te maha o nga karaehe, ka whakamahia e te kaihoko tetahi tikanga ngawari ki te Facade.

<?php

namespace RefactoringGuru\Facade\RealWorld;

/**
 * The Facade provides a single method for downloading videos from YouTube. This
 * method hides all the complexity of the PHP network layer, YouTube API and the
 * video conversion library (FFmpeg).
 */
class YouTubeDownloader
{
    protected $youtube;
    protected $ffmpeg;

    /**
     * It is handy when the Facade can manage the lifecycle of the subsystem it
     * uses.
     */
    public function __construct(string $youtubeApiKey)
    {
        $this->youtube = new YouTube($youtubeApiKey);
        $this->ffmpeg = new FFMpeg();
    }

    /**
     * The Facade provides a simple method for downloading video and encoding it
     * to a target format (for the sake of simplicity, the real-world code is
     * commented-out).
     */
    public function downloadVideo(string $url): void
    {
        echo "Fetching video metadata from youtube...\n";
        // $title = $this->youtube->fetchVideo($url)->getTitle();
        echo "Saving video file to a temporary file...\n";
        // $this->youtube->saveAs($url, "video.mpg");

        echo "Processing source video...\n";
        // $video = $this->ffmpeg->open('video.mpg');
        echo "Normalizing and resizing the video to smaller dimensions...\n";
        // $video
        //     ->filters()
        //     ->resize(new FFMpeg\Coordinate\Dimension(320, 240))
        //     ->synchronize();
        echo "Capturing preview image...\n";
        // $video
        //     ->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(10))
        //     ->save($title . 'frame.jpg');
        echo "Saving video in target formats...\n";
        // $video
        //     ->save(new FFMpeg\Format\Video\X264(), $title . '.mp4')
        //     ->save(new FFMpeg\Format\Video\WMV(), $title . '.wmv')
        //     ->save(new FFMpeg\Format\Video\WebM(), $title . '.webm');
        echo "Done!\n";
    }
}

/**
 * The YouTube API subsystem.
 */
class YouTube
{
    public function fetchVideo(): string { /* ... */ }

    public function saveAs(string $path): void { /* ... */ }

    // ...more methods and classes...
}

/**
 * The FFmpeg subsystem (a complex video/audio conversion library).
 */
class FFMpeg
{
    public static function create(): FFMpeg { /* ... */ }

    public function open(string $video): void { /* ... */ }

    // ...more methods and classes... RU: ...дополнительные методы и классы...
}

class FFMpegVideo
{
    public function filters(): self { /* ... */ }

    public function resize(): self { /* ... */ }

    public function synchronize(): self { /* ... */ }

    public function frame(): self { /* ... */ }

    public function save(string $path): self { /* ... */ }

    // ...more methods and classes... RU: ...дополнительные методы и классы...
}


/**
 * The client code does not depend on any subsystem's classes. Any changes
 * inside the subsystem's code won't affect the client code. You will only need
 * to update the Facade.
 */
function clientCode(YouTubeDownloader $facade)
{
    // ...

    $facade->downloadVideo("https://www.youtube.com/watch?v=QH2-TGUlwu4");

    // ...
}

$facade = new YouTubeDownloader("APIKEY-XXXXXXXXX");
clientCode($facade);

Ercole Palmeri

Panui houtanga
Kaua e ngaro nga korero tino nui mo te mahi auaha. Waitohu ki te whiwhi i a raatau ma te imeera.

Nga tuhinga o mua

Kei a Veeam te tautoko tino whanui mo te ransomware, mai i te whakamarumaru ki te whakautu me te whakaora

Ka whakarato tonu a Coveware na Veeam i nga ratonga whakautu mai i nga aitua. Ka tukuna e Coveware nga mahi whakawai me te whakatikatika…

23 Paenga-whāwhā 2024

Hurihuri Kakariki me te Mamati: He pehea te Huringa Matapae i te Hurihanga i te Ahumahi Hinu me te Hau

Ko te tiaki matapae kei te huri haere i te waahanga hinu me te hau, me te huarahi auaha me te kaha ki te whakahaere tipu.…

22 Paenga-whāwhā 2024

Ka whakaarahia e te kaiwhakahaere antitrust UK te whakaoho BigTech mo GenAI

Kua tukuna e te UK CMA tetahi whakatupato mo te whanonga a Big Tech i te maakete mohio. I reira…

18 Paenga-whāwhā 2024

Casa Green: hurihanga pūngao mo te oranga tonutanga i Itari

Ko te Whakatau "Nga Whare Kaariki", i hangaia e te Kotahitanga o Europi hei whakarei ake i te kaha o te kaha o nga whare, kua mutu tana mahi ture me te…

18 Paenga-whāwhā 2024