Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Presbiopia - la 43 ani ?

Termen transcriere autovehicul

Cazare Timisoara pe 4-5 zile

Primele zile ale internetului per...
 Ditra 25

Casti USB-C ptr A-54

Aplicatie medicala / asistent med...

De ce vor atația politicieni...
 ERR_ADDRESS_UNREACHABLE

Legea 18/1968 Se mai aplica?

Digi conectare 2 routere prin fir

Succesiune notar versus instanta ...
 Montaj aer conditionat in balcon ...

Cont curent mulți valuta far...

Sugestii plan casa

Experiente cu firme care cumpara ...
 

Java mai interesantã pentru început

* * * - - 2 votes
  • Please log in to reply
78 replies to this topic

#37
spe_ripper

spe_ripper

    Senior Member

  • Grup: Senior Members
  • Posts: 3,519
  • Înscris: 04.03.2009

View Postiulian_1976, on 07 februarie 2019 - 14:56, said:

Spui ca esti la master ok, ai aici o problema reala de rezolvat, eu am reusit sa o fac dar nu in timpul aferent.

Iti dau un fisier .json care contine 1000 de tranzactii.
https://drive.google...iew?usp=sharing

1.afiseasa toate tranzactiile
2.Afiseaza toate tranzactiile pe client(functie de "event_name"=client) (o firma a facut mai multe tranzactii in timp)
3. afiseaza primele 5 tranzactii pe clienti in ordine descrescatoare.

Firma care recruta cerea intr-un framework si in 3 zile, cum nu stiam nici un framework, am reusit in 8 zile in Java Web.

Eu iti dau 10 zile presupunand ca esti junior asa cum spui, sa vad ce poti, un masterand ar trebui sa se descurce cel putin cat mine.Succes si vin-o cu codul sa-l testam.

Astea sunt chestii banale pe care le poti face si in Excel.
M-as baga si eu, dar nu stiu frameworkuri. Probabil mi-ar lua spre 3-6 luni.
Pacat ca Java nu are treaba cu limba romana.

#38
dannyetlv

dannyetlv

    Member

  • Grup: Members
  • Posts: 622
  • Înscris: 13.08.2016
Deci le dai taskuri, îi angajezi ca freelanceri sau cum?
Dacã îmi poți rãspunde.. mã intereseazã destul de mult subiectul programãrii din perspectiva celor ce fac programare: cât de ușor, greu, plãcut, chinuitor.

#39
iulian_1976

iulian_1976

    Active Member

  • Grup: Members
  • Posts: 1,576
  • Înscris: 10.05.2008
danny@ tu este debutant nu junior daca esti ceea ce spui junior si masterand demonstreaza ca poti.

Daca nu utilizezi un framework nu cred ca o sa reusesti in 30 de minute, posteaza in 30 de minute rezolvarea.
Daca ai mai lucrat cu fisiere .json uzual poate, pune o rezolvare nu ma supar ca sunteti de top.
Astept rezolvarea la ora 16 ora Romaniei Posted Image

Edited by iulian_1976, 07 February 2019 - 15:23.


#40
RedDev

RedDev

    Active Member

  • Grup: Members
  • Posts: 1,933
  • Înscris: 29.10.2014
Păi deja lucram la punctul 3, doar că am văzut care e șmecheria. Tranzacțiile sunt în monede diferite și au diferiți separatori pentru virgulă. Plus că moneda e UTF-encoded, deci nu-i pe un singur byte.

Edited by RedDev, 07 February 2019 - 15:22.


#41
iulian_1976

iulian_1976

    Active Member

  • Grup: Members
  • Posts: 1,576
  • Înscris: 10.05.2008
Mie mi s-a cerut intr-o tehnologie web si MVC , posibil doar in Java sa mearga mai repede nu am testat.

Sa nu uit nu se folosesc baze de date in problema data Posted Image

Edited by iulian_1976, 07 February 2019 - 15:30.


#42
RedDev

RedDev

    Active Member

  • Grup: Members
  • Posts: 1,933
  • Înscris: 29.10.2014
Cam așa:
// $json = 'That big ol\' list o\' tranzaktionz';

$jsonArray = json_decode($json, true);
// Some static exchange rates, conversion from {currency} to EUR
$exchangeRates = [
	 '€' => 1,
	 '$' => 0.88,
	 '¥' => 0.008,
	 '£' => 1.13
];

// Get transactions per client (well, event_name)
$byClient = [];
foreach ($jsonArray as $item) {
	 $byClient[$item['event_name']][] = $item;
}

// We could display transactions by client here, but nah

// Sort transactions per client and display TOP 5, if there are at least 5 of 'em
foreach ($byClient as $clientName => $transactions) {
	 // Normalize prices and remove the currency sign
	 foreach ($transactions as $index => $transaction) {
		 $currency = mb_substr($transaction['amount'], 0, 1);
		 $amount = mb_substr($transaction['amount'], 1);
		 $transactions[$index]['amount'] = round(floatval($amount) * $exchangeRates[$currency], 2);
	 }

	 // Sort them
	 usort($transactions, function ($a, $b) {
		 return $a['amount'] < $b['amount'];
	 });

	 // Display TOP 5
	 foreach (range(1, 5) as $position) {
		 if (!empty($transactions[$position])) {
			 echo "{$clientName}: Transaction TOP {$position} = €{$transactions[$position]['amount']} at ";
			 // Just for the sake of not breaking Softpedia.com, you know, code line being too long and all that
			 // pretty much just like this comment
			 echo "{$transactions[$position]['merchant']} on {$transactions[$position]['created']}" . PHP_EOL;
		 }
	 }
	 echo PHP_EOL;
}


Edited by RedDev, 07 February 2019 - 15:50.


#43
iulian_1976

iulian_1976

    Active Member

  • Grup: Members
  • Posts: 1,576
  • Înscris: 10.05.2008
...este in php ce ai postat si functioneaza ? Posted Image
Uitasem mai era o intrebare clientii care au facut cele mai multe tranzactii sa fie afisati in ordine descrescatoare, mai usoara decat intrebarea nr 3Posted Image

Mai ai timp 10 minute, glumesc.Cine lucreaza cu zilnic cu .json posibil sa o rezolve repede nu lor le este adresat.

Edited by iulian_1976, 07 February 2019 - 15:49.


#44
RedDev

RedDev

    Active Member

  • Grup: Members
  • Posts: 1,933
  • Înscris: 29.10.2014
No bine. Ați înțeles, se poate face în 30 de minute. Altfel putem să tot adăugăm cerințe și stăm toată ziua la calculator. Ceea ce și intenționez să fac.

Attached Files


Edited by RedDev, 07 February 2019 - 15:48.


#45
iulian_1976

iulian_1976

    Active Member

  • Grup: Members
  • Posts: 1,576
  • Înscris: 10.05.2008
Pune tot codul sa il testam cu toate intrebarile inclusiv ultima.
Ultima intrebare se cerea un clasament pe clienti in ordine descrescatoare care au realizat  mai multe tranzactii, desigur fara baze de date.

Sa vedem o rezolvare de la initiatorul topicului.

Edited by iulian_1976, 07 February 2019 - 16:16.


#46
RedDev

RedDev

    Active Member

  • Grup: Members
  • Posts: 1,933
  • Înscris: 29.10.2014
// Nu sunt eu inițiatorul topic-ului


Edited by RedDev, 07 February 2019 - 16:52.


#47
iulian_1976

iulian_1976

    Active Member

  • Grup: Members
  • Posts: 1,576
  • Înscris: 10.05.2008
Nu esti tu  initiatorul topicului Posted Image  
O sa il testez este in php din ce vad si o sa-l studiez un pic.

Firma cerea in MVC, in sensul ca trebuia ,extras fisierul in View, trebuia sa treaca print-un controler, servlets cazul meu, respectiv crearea obiectului prin model, apoi pentru "intors" in View si afisat intr-un tablel, nu este chestie de 30 de minute.

Edited by iulian_1976, 07 February 2019 - 16:49.


#48
BraviaAmpero

BraviaAmpero

    Member

  • Grup: Members
  • Posts: 923
  • Înscris: 03.11.2018

View Postspe_ripper, on 07 februarie 2019 - 15:01, said:

M-as baga si eu, dar nu stiu frameworkuri. Probabil mi-ar lua spre 3-6 luni.
Poate frameworkuri de PHP.
In incepator inainte de a se baga in frameworkuri trebuie sa stapaneasca bine java SE + OOP. (adica cam 8 luni de practica continua)
Apoi trece pe invatarea servletzilor, jsp-urilor si altor chestii(care sunt multe, nu are sens sa le enumeram aici) , adica tehnologii java enteprise( + 6 luni de practica continua)
Tocmai acum este pregatit sa scrie prima sa aplicatie  complexa utilizand un framework, respectiv "Spring framework"

#49
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,233
  • Înscris: 24.02.2007

View Postiulian_1976, on 07 februarie 2019 - 14:56, said:

Spui ca esti la master ok, ai aici o problema reala de rezolvat, eu am reusit sa o fac dar nu in timpul aferent.

Iti dau un fisier .json care contine 1000 de tranzactii.
https://drive.google...iew?usp=sharing

1.afiseasa toate tranzactiile
2.Afiseaza toate tranzactiile pe client(functie de "event_name"=client) (o firma a facut mai multe tranzactii in timp)
3. afiseaza primele 5 tranzactii pe clienti in ordine descrescatoare.

Firma care recruta cerea intr-un framework web si in 3 zile, cum nu stiam nici un framework, am reusit in 8 zile in Java Web.

Eu iti dau 10 zile presupunand ca esti junior asa cum spui, sa vad ce poti, un masterand ar trebui sa se descurce cel putin cat mine.Succes si vin-o cu codul atasat sa-l testam, in plus in Java ar trebui sa fie mai usor pentru tine, in Java Web este mai greu mai trebuie sa stii si ceva html,servlets,jsp.

Dupa 10 zile cine doreste sa puna o rezolvare sa o posteze.

O solutie in mai putin de 100 de linii de cod. Ce-i drept, intr-un limbaj mult mai elegant.

Attached File  cod.png   61.1K   63 downloads

#50
BraviaAmpero

BraviaAmpero

    Member

  • Grup: Members
  • Posts: 923
  • Înscris: 03.11.2018

Quote

Ce-i drept, intr-un limbaj mult mai elegant.
Adica Scala , care de fapt e Java cu sintactic sugar.Asadar  care este acel "alt limbaj", elegant ?
Apoi tu n-ai inteles ca cerinta era in mediul enterprise unde lucrurile stau 100 % diferit.
Se cere  implementarea unei solutii profesioniste in mediul java enterprise
In Java Enterprise , cerinta se poate implementa printr-un EJB stateless bean in mod CMT si o entitate JPA, alaturi de un datasource de tip mysql

Scheletul unui astfel de EJB bean:

package com.javacodegeeks.example.beans;

import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;

@Stateless
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public class SampleBean {
...
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void firstMethod() {...}

@TransactionAttribute(TransactionAttributeType.MANDATORY)
public void secondMethod() {...}

public void thirdMethod() {...}
}

Quote

Firma care recruta cerea intr-un framework web si in 3 zile
Adica dorea implementarea tranzactiilor in frameworkul de baza EJB( ABC-ul Java Enterprise).

Cine lucreaza frecvent cu EJB-ul o poate face intr-o zi ( cu tot cu entitate JPA + tabela mysql) + aplicatia web cu servletul respectiv, iar cele doua module le impachetezi in pachet ear
sauuu....
faci mai simplu in locul aplicatiei web, faci un EJB stateless bean pe care il configurezi se comporte ca serviciu REST via JAXRS.
apoi pui ejb beanul de tranzactionare sa interogheze serviciu REST(care iti va genera acel json) si apoi ejb beanul de tranzactionare va comunica cu entitatea jpa (care este tot un ejb bean in mod JPA)
si impachetezi totul intr-o arhiva jar.
Et voila...

Edited by BraviaAmpero, 09 February 2019 - 09:30.


#51
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,233
  • Înscris: 24.02.2007

View PostBraviaAmpero, on 09 februarie 2019 - 09:22, said:

cerinta se poate implementa printr-un EJB stateless bean in mod CMT si o entitate JPA, alaturi de un datasource de tip mysql

Poate recitesti cerinta, ca n-am citat-o degeaba.

#52
BraviaAmpero

BraviaAmpero

    Member

  • Grup: Members
  • Posts: 923
  • Înscris: 03.11.2018

View Postdani.user, on 09 februarie 2019 - 10:21, said:

Poate recitesti cerinta, ca n-am citat-o degeaba.
ba da, firma respectiva de fapt cerea sa jonglezi cu EJB si java tranzactions
https://www.oracle.c...chap-132282.pdf
https://www.amazon.c...n/dp/013035290X

Quote

Firma care recruta cerea intr-un framework web
Java enterprise si nu limbaje exotice.

Edited by BraviaAmpero, 09 February 2019 - 11:17.


#53
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,233
  • Înscris: 24.02.2007
Hai cu solutia completa si la obiect (nu aberatii cu mysql cand cerinta iti cere json) si explica pas cu pas de ce e mai buna. Concret, nu povesti stil e enterprise.

#54
iulian_1976

iulian_1976

    Active Member

  • Grup: Members
  • Posts: 1,576
  • Înscris: 10.05.2008
Eu sunt multumit ca am trezit interesul printr-un subiect respect celor care gasit o solutie.
Nu sunt asa exigent ca acea firma, ca de initiatorul topicului s-a cam uitat, el trebuia sa vina cu o solutie.Posted Image

Cerinta era sa se faca intr-un framework conceptie MVC, deci ar trebui sa existe cel putin un View unde salvezi fisierul, il trimiti spre un controler, pe baza unui model fabrici obiectele si il intorci sa spunem intr-un View 2 sa fie afisat si fara baze de date.

Problema cea mai dificila cel putine pentru mine era partea cu top 5 clienti cu cele mai multe tranzactii, exista un algoritm optimizat il pot aplica
asta nu inseamna ca as sti sa-l reproduc pe o foaie de hartie, am aplicat o solutie ceva mai lizibila si logica.

Edited by iulian_1976, 09 February 2019 - 11:32.


Anunturi

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate