[so] [SO][Tema 2] Portabilitate

Costin Lupu costin.lup at gmail.com
Sun Apr 2 16:41:12 EEST 2017


On 04/02/2017 03:54 PM, Darius-Florentin Neatu via so wrote:
> Salut,
>
> As vrea sa stiu daca are sens sa incerc sa fac tema portabila (in cazul
> implementarii mele).
>
> Nu am gandit bine acest lucru de la inceput si am ajuns in urmatoarea
> situatie: am cateva functii care au complet alta implementare pe cele 2
> sisteme (open_file, do_redirect, do_in_paralel, do_on_pipe - 50% din
> aceasta functie), dar in rest structura temei e la fel pe ambele sisteme.
>
> E ok sa am o abordare simpla de genul: daca sunt pe linux se compileaza
> cu implementarea X, altfel cu implementarea Y pentru fiecare dintre
> functii? (adica mult cod diferit)

Pe scurt: nu. Ideea cu portabilitatea e să izolezi codul specific 
platformei de codul care conține logica de aplicație. Mă aștept la o 
implementare portabilă să aibă funcțiile do_in_parallel și do_on_pipe 
identice pe Linux și Windows.

> Nu m-am gandit la implementarea de Windows decat dupa ce am terminat pe
> Linux. Se putea obtine o structura a temei care sa aiba mai putin cod
> specific platformei.
>
> Pentru unele functii pot sa sa pun directive de preprocesare pentru
> anumite bucati de cod din interiorul functiei (de ex. do_on_pipe). In
> cazul asta o sa fie functia mai lunga, dar per total tot e codul mai
> scurt, pentru ca nu fac duplicate partilor comune. Este ok si asta?

Nu. Repet, do_on_pipe trebuie să fie la fel pe ambele platforme.

> Nu stiu daca mai am timp sa fac tema portabila (pentru ca mai am si alte
> teme), dar as vrea sa stiu pentru urmatoarele teme.

Personal cred că tema 2 e cea mai dificilă din punctul de vedere al 
portabilității și nu recomand, mai ales că mai sunt teme și la alte 
materii. Următoarele teme SO sunt mai abordabile din perspectiva asta.

Costin


More information about the so mailing list