- Milyen okostelefont vegyek?
- Sony Xperia 1 V - kizárólag igényeseknek
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- Huawei Watch GT 3 Pro - korlátolt szépség
- Külföldi prepaid SIM-ek itthon
- Hivatalosan is bemutatta a Google a Pixel 6a-t
- Xiaomi 14T Pro - teljes a család?
- Samsung Galaxy Watch7 - kötelező kör
- Okosóra és okoskiegészítő topik
- Apple Watch Sport - ez is csak egy okosóra
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
-
Mobilarena
Új hozzászólás Aktív témák
-
bandi0000
nagyúr
válasz
galaxy55 #20234 üzenetére
a
csak egy szimple smile, a rövidítés miatt raktam oda, mert gondolom a kolléga ismeri a kifejezést, csak lehet az adott kontextusba nem volt érthető számàra
coco2: Senki nem fogta rà, csak mivel más csapatoknak is gondot okozott ez, így több mindent csináltunk, hogy biztos megoldódjon.BTW di is panaszkodott az eltérő fàjlnév miatt , ami érdekes, mert az ugye nincs feltolva git-re...
Nyilvàn kolléga hibázott, csak több problémàt is okozott
-
bandi0000
nagyúr
Igen, ez lemradt, igazàból GUI-t hasznàlunk (tudom, főben járó bűn) , Am Androidstudio ban történt a rename, bár mint ahogy utóbb kiderült, megijedt a srác a felugró ablaktól, ahol kilistàzta a refeket, amiket átnevez, és nyomkodta picit
Egyenlőre talàn fixed, kitöröltük az eredeti fájlt, volt egy ugyan olyan nevű is, nyilván más package-ben, csak lehet a DI is behülyült miatta
-
bandi0000
nagyúr
hayho,
Találkozott már valaki esetleg a következő GIT issue-val?
Egyik srác rossz névvel töltött fel egy fájlt, be is ment a fő branchbe. Kövi PR-ba javította, bár eléggé ködösen fogalmazott a rename sikerességével kapcsolatban. Az is bement minden jó fordul a kód.
Viszont, több embernél is látszólag random megjelenik changes-be a régi fájlnevű fájl, nyilván a projectben nincs ott, de rollback után is visszajön...
Volt már git clear, én már clonoztam újra a projektet, de úgy néz ki, hogy csak a gitről kerül elő újra és nem localba van az issú -
bandi0000
nagyúr
válasz
hiperFizikus #20084 üzenetére
Hàt ha nem is chatGpt, de nàlunk a google volt emlegetve, hogy ők is azt hasznàljàk, elolvastam a doksit róla, és 2 dolgot emeltek ki, ami nàlunk nincs meg
1: Tesztekkel tele van, nàlunk indiaik olyan csoda teszteket írnak, hogy nincs assertion, szal nem tesztel semmi
2: Mergelés gyors, na már most nàlunk 10p és 2 óra míg megkapom az approvokat, 1 óra a build, 1 óra a merge, és ez akkor, ha közben nincs mergelés a trunkra, mert akkor rebease és megint 1 óra, a tesztek meg nincsenek futtatva pusholáskor szal hiába is lennének
-
bandi0000
nagyúr
válasz
martonx #20082 üzenetére
Nemtudom hogy kellene jobban fejleszteni ahhoz, hogy ehhez tudjunk adaptàlódni...
Mármint érted, nyilván szar a kód, nagyobb refactorálást csinálok, 1 osztályba 5-6 fv-t írtam át, aminek folytàn 10-15 osztályt is módosítottam, itt nem nagyon látom, hogy mit tudtam volna máshogy csinàlni
-
bandi0000
nagyúr
Királysàg
Igazàból mi pàr hónapja kezdtük el, de sztem kár volt...
Az érdekelne, hogy olyan esetben, amikor nagyon sok vàltoztatás érintene sok függvényt mit csinàltok?
Nàlunk az a mondás, hogy kb if-be berakjuk a feature-t, ami defaultom false, és így mehet be a trunkba, de pl tegnap amit csináltam 20 file-t érint meg isten tudja hány fv-t, szal nemtudom elképzelni, ilyen esetben mi történik
Ugye elvben a trunk based nek az az alapja, hogy unit testelve van minden, ami le is fut, ilyen esetbe kb nem kellene ez a flages jàték ami nàlunk van, de persze unit testek csapnivalók pàr kivétellel
-
bandi0000
nagyúr
Dolgozik itt valaki trunk based developmentbe?
Lenne pár kérdésem, nem tudom, mi csinàljuk rosszul, vagy tényleg rossz-e, de ha nincs vele tapasztalat, akkor nem is folytatom
-
-
bandi0000
nagyúr
válasz
#79484416 #19770 üzenetére
Köszike
Én azért támogatom ezeket az elveket, mert ha nem is látjuk most az értelmét, de később sok időt spórolhatnak
Amivel szerintem baj van, hogy sok esetben csak azért használnak 1-1 pattern-t, hogy használják, és ezzel feleslegesen bonyolítják el a kódot, szóval nem fog sose beérni az a bizonyos gyümölcs, de legalább rá lett húzva
-
bandi0000
nagyúr
válasz
VikMorroHun #19766 üzenetére
Mert nem én csinálom
Mondhatni mia hal vagyok, viszont nem értek egyet ezzel a megoldással, de eddig nem kaptam meg házon belül a megfelelő magyarázatot rá, hogy eltudjam fogadni
-
bandi0000
nagyúr
válasz
bandi0000 #19758 üzenetére
Szóval a példa amit kértetek kb így nézne ki:
Egyszerűség kevéért tegyük fel, hogy ez egy Logolós funkció lesz, vár egy string-et,amit tekinthetünk egy TAG-nek, és egy Map-et, amibe bármit belerakunk nyilván egy String lesz a végén
Szóval valahogy így néz ki:
Kotlinba írodott a csoda példám, de talán érthetőTalán már az interactorig értem is így, hogy miért kellett, jó sok mindent lehagytam, szóval tételezhetjük fel, hogy az jó, de ami sötét nekem, hogy miben segít az interactor alatti rész, ugyanis anélkül, hogy a konkrét felhasználáskor ezt csinálnám:
val data = SpecificSecondScreenData()
data.name = "Tag"
SecondScreenLoggerImpl().log(data)
Csinálhatnám szimplán ezt:
PerfLogInteractor().logSecondScreenLogs("TAG",mapOf())
interface ILogger{
fun logFirstScreenLogs(name: String, list: List<Any>)
fun logSecondScreenLogs(name: String, attrs: Map<String, Any>)
}
class LoggerImpl(): ILogger{
//Itt azért sok egyéb dolog van, de a lényegi része ennyi:
override fun logFirstScreenLogs(name: String, list: List<Any>) {
ThirdPartyLogger.getInstance().Log(name, list)
}
override fun logSecondScreenLogs(name: String, attrs: Map<String, Any>) {
ThirdPartyLogger.getInstance().Log(name, attrs)
}
}
class PerfLogHelper(){
private val Logger = LoggerImpl()
fun getInstance() = PerfLogHelper()
fun logFirstScreenLogs(name: String, list: List<Any>){
Logger.logFirstScreenLogs(name,list)
}
fun logSecondScreenLogs(name: String, attrs: Map<String, Any>){
Logger.logSecondScreenLogs(name,attrs)
}
}
//Ez a kettő multi modul miatt kell
interface IPerfLogInteractor{
fun logFirstScreenLogs(name: String, list: List<Any>)
fun logSecondScreenLogs(name: String, attrs: Map<String, Any>)
}
class PerfLogInteractor(): IPerfLogInteractor{
override fun logFirstScreenLogs(name: String, list: List<Any>) {
PerfLogHelper.getInstance().logFirstScreenLogs(name,list)
}
override fun logSecondScreenLogs(name: String, attrs: Map<String, Any>) {
PerfLogHelper.getInstance().logFirstScreenLogs(name,attrs)
}
}class SpecificSecondScreenData(): ISecondScreenData{
override var name: String = "TAG"
override fun getAttrs(): Map<String, Any> {
return mapOf()
}
}
interface ISecondScreenData{
var name: String
fun getAttrs(): Map<String,Any>
}
interface ISecondScreenLogger{
fun log(data: ISecondScreenData)
}
class SecondScreenLoggerImpl(): ISecondScreenLogger{
val interactor: IPerfLogInteractor = PerfLogInteractor()
override fun log(data: ISecondScreenData) {
interactor.logSecondScreenLogs(data.name,data.getAttrs())
}
} -
bandi0000
nagyúr
Köszi mindenkinek, a holnapi napon megpróbálok valami példa félét mutatni, sajnos nyilván 1 az 1 ben nem tudom betakni
Amúgy eléggé összecsaptam a leírást, első interface + osztály páros nyilván több, mert ott példányosítja, és felparaméterezi azt a modult, amit hasznàl a küldésre/logolásra
A 2. réteg amúgy belegondolva, azért kellhet, mert több modul van, persze azt mondtam, hogy nincs, de egyszerűség végett mondtam
A 3-al vagyok bajban, mert tesztelhetőség és olvashatóság a 2 címszó, de amit használ a középső rétegből, az már tesztelt, vagy fogjuk rà, így nincs értelme még 1 ezért, olvashatósàgot talán eltudom hinni, de több érvet nem is tudok felhozni rá, csak túlbonyolítottnak tűnik
-
bandi0000
nagyúr
Sziasztok,
Van egy interface + hozzá a megvalósítás, ami alap dolog, ez az interface 1 dolgot tud mondhatni, van egy Send metódusa, ami fogad 1 db stringet és egy Map-et, nevezzük példa képp ezt az interface-t és osztályt BaseSenderInterface és BaseSenderImp-nak
Kérdezném én, hogy mi értelme van ezt még jobban bonyolítani, és csinálni e fölé pl még 1 interface-t pl ScreenSenderInterface + megvalósítás ScreenSenderImp, ahol is az osztály annyit csinál, hogy vár egy BaseSenderInterface példányt, és annak meghívja a Send metódusát
Továbbá lesz még1 interface, ami nem tudom CustomXYInterface lenne, aminek szintén Send függvénye van, de ez már egy custom objectumot vár, ami tartalmazza a fentebb említett String + Map kombót, és vár egy BaseSenderInterface típust és annak hívja a Send metódusát szintén
Nem tudom mennyire érthető ez így, számomra teljesen feleslegesnek tűnik, egyetlen érv, amit eltudok fogadni mellette, hogy esetleg szebb/olvashatóbb lesz, de sokkal több rétegen kell átrágnia magát valakinek ha hiba van
Más érvet tud valaki mondani, hogy miért jó az ehhez hasonló pattern, vagy nevezzük bárminek is?
+Tételezzük fel, hogy nincs multi modul, szóval minden osztály eléri a legelső interface + implementációt
-
-
bandi0000
nagyúr
Elég béna példakód, de nagyjából ez a logika:
Kiinduló a main metódus, observableList minden egyes elemére megakarom hívni a doSometing() metódust, ami hívja a következőt és következőt
Arra akarok felíratkozni, amikor az összes elemen végrehajtotta az összes metódust
Sajnos az eredeti kódot nem tudom berakni, igazából ott annyi a különbség, hogy a 3. metódus tér vissza valami eredménnyel, és az lesz a fenti 2 metódusnak is a visszatérési értéke. Itt most ugye ez el van rontva
fun main(){
val list = listOf(
"1",
"2",
"3"
)
val observableList = Observable.fromIterable(list)
}
fun doSomething(input: String) =
Single.create<Int> {
doSomething2(input).map {
Log.d("1",it.toString())
}
}
fun doSomething2(input: String) =
Single.create<Boolean>{
doSomething3(input).map {
Log.d("1",it.toString())
}
}
fun doSomething3(input: String) =
Single.create<String> {
"FinalResult"
} -
bandi0000
nagyúr
Igen gondoltam rà, kicsit leeresztett az agyam nap végére
Szóval ez a felállás:
Van egy
Observable<List<Int>>
az egyszerűség kedvéértMinden egyes elemen megszeretnék hívni 3-3 metódust, ami visszatér egy
Single<akàrmi>
-vel, ezek egymás utàn mennek, mint pl ha kiindulnék egy id listából, lekérdezem belöle a usert és abból a user autóit stb3. Metódus végén csinálom meg azt az objektumot, ami kell
Jelenleg az a baj, hogy az els observable belsejében, mikor map-et hasznàlva hívtam az 1. Metódust, blockingGet-et használtam, eredmény jó lett, viszont blokkolja a UI-t, szóval valamit nem jól csináltam
A konkrét kódot nem másolnám be, ha ennyiből nem érthetö, akkor holnap tudok csinàlni egy példa kódot
[ Módosította: mobal ]
-
bandi0000
nagyúr
Sziasztok,
Van köztetek RX Java guru? Napok óta küzdök egy dologgal és nem tudom összehozni, ha esetleg van itt aki ért hozzá feltenném a kérdést, anélkül meg nem szemetelném a fórumot
-
bandi0000
nagyúr
válasz
pmonitor #17793 üzenetére
Itt sose voltak elzavarva azok az emberek, akik tanulni szerettek volna, de keress rá, hogy hànyan írtak akár konkrét pénzbeli ajánlattal is ide, hogy valaki írja meg helyette a zh-t/vizsgàt, ő konkrétan erre gondol.
Nem tudom pl mekkora kedvel ülnél be pl egy olyan taxiba, ahol a sofőrt àtengedték vizsga nélkül pl
-
bandi0000
nagyúr
Köszönöm.
Szóval, nyilván jelenleg úgy vagyok vele, hogy működik a tfs, úgy hogy nem nyúlok hozzá. Szóval értelemszerűen, nem is az a cél, hogy a jelenlegit lemásoljam egy újabb-ra, hanem a jelenlegivel megegyezőt hozzak létre. Azt nyilván látom, hogy milyen folyamatok mennek, meg az Android részén futóakat értem, is hogy mit csinál, szóval csak meg kell találni az ezekkel egyen értékű Azure dolgokat. Vagy hogy egyszerűsítsem a dolgot, beadom a projektet, kijön az apk és ezt kell elérni az új rendszernél
Én úgy gondolnám. bár lehet rosszul, hogy inkább megtanulom az Azure dolgot 0-ról, és felépítem a dolgokat, mintsem a régit tanulmányozzam és alakítgassam, hogy tökéletes legyen. Amúgy az azure már más kapcsán is felmerült, szóval nyilván más esetben a jelenlegi lenne piszkálva.
A régi windows-os dolog csak kérdés ügyileg merült fel. nem én vagyok a rendszergizda, de amúgy szerintem a cégek 90%-nál windows 8.1 talán és újabbakkal találkoztam eddig.
Csak ugye ha netán a cégek 70%-a régi op rendszerrel menne, akkor értelemszerűen nehezen tudnánk megmagyarázni, hogy miért lesz ez nekünk kifizetődő
De amúgy valszeg a natív host-al nem lesz probléma.
A jelenlegi Web service .Net framwork 462-őn alapszik, ősrégi, és vannak benne érdekes dolgot, amikre már biztos vannak jobb megoldások is, ezért és szimplán tanulás miatt is át szeretném írni, nem akarok úgy járni, hogy leragad az egész projekt és vele én is egy régi rendszeren, bár mire ebből gond lesz, addigra én már nem leszek itt
-
bandi0000
nagyúr
Egy újabb csodás kérdés, részlet szegényen
Van a cégnek egy interface, egy Web service féleség, .net Framwork alapú, ezen gondolkodunk, hogy átírnánk .Net 6-ra.
Ha pl olyan oprenszeren akarnánk futtatni (Elvben nincs ilyen, de ki tudja), ami nagyon régi, és nem támogatná a .Net 6-ot, ott milyen lehetőségek lennének, valami ilyesmire találták ki a Dockert nem?
Bocsássátok meg, hogy jelenleg szerény tudásom van a témában, mert még csak azon agyalunk,hogy nem-e megszivatjuk magunkat jobban a dologgal, ezért mélyebben még nem is ástam bele magam.
A másik kérdés az, hogy jelenleg egy TFS szervert használunk verziókövetésre, és onnan van buildelés után automatikusan kirakva egy adott helyre/szerverre nem tudom pontosan, a Web service, nyilván nem én csináltam ,csak használom, így nincs is annyira tudomásom, hogy mi történik benne.
Azon is gondolkodunk, hogy ezt a TFS szisztémát lecserélnénk Azure-ra, amit már konkrétan én/mi csinálnák az elejétől, mennyire lehet benyolult egy ilyen szisztémát felépíteni 0 tudással?
Mind android és mind .Net projektek futnak a jelenlegi TFS-en, androidnál pl ugyan így buildel, lefuttatja a teszteket, és különböző paraméterek szerint, különböző url-ket meghívva, rakja ki a release apk-kat.
-
bandi0000
nagyúr
válasz
fatal` #17399 üzenetére
Köszönöm, én is gondoltam erre, sőt ki is próbáltam, de nem eszi meg, Kotlinban írom, és Dagger Hiltet használok, ami alapból panaszkodott, hogy generikust nem tud példányosítani, de ha nem lesz jobb megoldás, akkor lehet kicsit gyúrom még, és akár működhet is.
dabadab: Azt hiszem értem, tehát saját környezetben ilyesmire gondoltál?
Lenne egy interface, aminek 1 definíciója van, a getList ami egy generikus csoda lenne, és ahány listám lenne, annyiszor valósítom meg ezt az interface-t, csak különböző listákat adok vissza. A dialog meg egy interface típust vár, amibe bele tudom rakni bármelyiket.service osztályt azért gondoltam többször implementálni, mert maga az apit kezelő osztály egy interface, amit nem én valósítok meg, csak a függvényeit hívom, bár lehet meglehetne azt is oldani, amit te mondtál, sőt... függvényt is át lehetne neki adni paraméterbe, szóval ez még akár működhet is, illetve minden lista típusban csináhatnék egy filter függvényt, amit lehetne hívni, ha keresni akarok bármiben
-
bandi0000
nagyúr
Habár inkább Amdroid specifikus, de az alap gond talàn több tagot érintett már.
Szóval kellene csinálnom egy dialogot, ahol listàt jelenítek meg, illetve esetleg rajta egy kereső mezővel, a végén peddig választani lehet 1 elemet.
A probléma az, hogy több listàt kellene kezelni, persze nem egyszerre, így valami univerzàlis/generikus dolgon gondolkodok.
Ami eddig eszembe jutott, csökkenő "jó ötlet" sorrendben
1. Ahol megjelenítem, ott lekérdezem a listàt, és mejelenítéskor átadom a dialognak ezt, valami univerzális típusban.
2.Mivel a lista api ból jön, így a dialognak csak egy típus enumot adok át, és a dialogba szintén egy univerzális típust hozok létre csak egy case-when dologgal, enumtól függően hívom meg az api end pointokat.
3. Generikus dialog, az egyes típusok örökölnek tőle, így a megjelnítés/szűrés stb nem kell megírni, viszont attól még lista fajta X 3 osztály +- a generáltak lesznek.
Van valakinek valami jó ötlete? Talán az első 2 megoldás lehet a jó, főleg a 2. felé orientálódnék, mert akkor a hîvó osztályban, nem kellene mindenképp lekérdezni a listàt, mert lehet nem is nyitják meg ezt a dialogot
-
bandi0000
nagyúr
Nálunk is kb ez a szitu, csak szeretnék rá valami jó megoldást, mert a főnök nem akarja, hogy órákat ülve egyeztessünk róla, meg beszélgessünk, pedig szerintem ez megtérülne a pontosabb becslés miatt, én meg nem szeretem azt, hogy kapok egy leírást, amibe 50X belekötök mire tudok rá mondani óraszámot, mert kb ennyi erővel én nekem kellene az ügyféllel egyeztetni és akkor mindenki boldog lenne
-
bandi0000
nagyúr
Köszönöm midenkinek, azt hiszem kicsit félrement a történet, inkább arra lettem volna kíváncsi, hogy mi az elvárt dokumentum, amiből normálisan lehetne becslést adni.
Nálunk ugye vannak erre emberek, akik ezt megcsinálják, de mindig feljön nálam egy csomó kérdés, vagy ha nincs szerencsém, akkor nem jön fel, csak mikor már nekiálltam.
Nagyon lebutítva a dolgot, néha azt érzem, hogy kapok egy doksit, amibe benne van, hogy csinálj egy 10*5 centis vasdarabot, és nekem kell becslés közben gondolkodnom rajta, hogy kell rá nyél is, mert kalapálni akarnak, vagy szüghúzó rész stb... Szóval így kvázi irreális az, hogy ledobják a papírt, délutánig mondj rá valami óraszámot, de a leírás meg eléggé részletszegény
Tehát mégegyszer, nem azzal van a gond, hogy csomó minden módosul, vagy van 1-2 plusz kérdésem, csak fura számomra, hogyha van erre dedikált ember, akkor nekem mért kell még órákat töltenem, hogy tisztázzam mit is kell csinálni
-
bandi0000
nagyúr
Egy kérdés, kinél hogy mennek a fejlesztések becslése? Mármint van valami dokumnetum ami alapján koadtok egy óraszámot, és ezt a doksit ti csinàljátok meg magatoknak?
Csak hogy értsétek, nálunk vannak olyan emberek, akiknek a feladata az lenne, hogy az ügyfél ötleteit átfordítja nekünk, ami alapján tudnánk becslést adni, de amit én kapok abba kb több a kép, mint a normális leírás, szóval pl egy számlázó programanàl annyi lenne leírva, hogy készít egy számlát a számla gomb, de hogy mit ellenőriz, hogy számoljon stb azt nem írják le. Szóval több a kérdés utána mint a válasz. Jó lenne megreformàlni, de nem tudom hogy lenne ez a legjobb.
Én részemről az lenne a tuti, ha olyan doksit kapnék, ami alapjàn leülök és lekódolom kérdés nélkül
-
-
bandi0000
nagyúr
Van itt valakinek mélyebb tapasztalata TFS szerver build-el? Úgy örököltem meg a dolgokat, viszont most egy Androidos build nem akar lefutni, sőt elindulni se igazából, mert panaszkodik arra, hogy gradle -nek kell a java 11 és most 1.8-al akarom használni.
Helyben Android Studioban lefordul, ott a JDK-nak való igaz, hogy a 11 van beállítva. TFS szerverre most felraktam a 11-et de ugyan azt dobja, és lövésem sincs merre induljak el, mert egyáltalán nem ismerem a működését sem
-
bandi0000
nagyúr
-
bandi0000
nagyúr
Mivel mêg nem volt hozzá szerencsém, úgy általánossàgban mennyire jók a cross platform frameworkok? Cégnél rêgen Androidra a Cordovàt erőltették, annyira bejött, hogy most natív Android megy, viszont van 1-2 partner, aki mindig meglepődik, hogy android appot kapnak(holott gondolom mondták nekik)
Ezért kezdtem el agyalni, hogy a kotlin multiplatform jó lehetne-e, a nyelvet szeretem, csak szkeptikus vagyok az ilyen univerzális dolgokkal kapcsolatban
-
bandi0000
nagyúr
Nekem eszembe jutott egy olyan, hogy elindul a játék, és legenerál egy listàt, ahol az egyes elemek 1-1 kockàt reprezentàlnak sor, oszlop vàltozóval
Amikor le kell rakni egy jelet, akkor csak generál egy indexet 0 és a lista mérete közt, kiveszi az elemet, és aztàn törli a listából, csak annyit kell vizsgálni, hogy nem üres-e a lista
Persze nem biztos, hogy jó megoldás, csak eszembe jutott
-
bandi0000
nagyúr
válasz
Dr.Szilícium #14981 üzenetére
Lehet az a gondja, hogy nem az előzőben szerkesztetted a választ, hanem egy újat írtál
-
bandi0000
nagyúr
-
bandi0000
nagyúr
válasz
pelyib #14928 üzenetére
Az első nem tudom mennyire működőképes, a második meg kihozza ugyan úgy duplán, ami nekem megint nem jó
#14929Drizzt:
Kicsit félreérthető lehettem, az SQL megoldást úgy értem, hogy nem módosítani akarom a meglévő táblát, hanem abból a táblából lekérdezni, és azt továbbadni, mert a tábla sorai 2 óránként változnak, így gyakorlatilag a kiindulási listám olyasmi, mint amit feljebb írtamhanem olyasmi kellene, ami a megegyező cID-n belül azokat adja össze, amelyikek keresztbe páraosíthatóak, mint ahogy feljebb írtam, 15,13 sor ugyan az lesz mint a 13,15 ezért mennyiségeket össze kell adni, és az egyiket eldobni, a másikat elmenteni egy listába az új értékkel
-
bandi0000
nagyúr
Sziasztok
Megint egy bugyutának tűnő kérdés, de lehet csak a fàradsàgtól de nem tudom, hogy kellene megoldani (nem kókány megoldással)
Van egy listám, benne vannak olyan elemek amik tartalmaznak :
id,pId(product id), rPId(related product id), qtt, cId( client id)listában lehetnek olyan sorok elméletileg max 2 ügyfelenként ahol olyan fordul elő, hogy az elsö sor pId je megegyezik a második rId-vel, és fordítva, ezekböl kellene 1 sort csinálni, ahol a mennyisêgeket összeadom
Tehát pl
1. sor : pId : 10, rPId: 15, qtt: 100
2. sor: pId:15, rPId: 10, qtt:50Ebből kellene 1 sort csinálni a mennyiség összeadásával:
pId:10,pID:15,qtt:150Alapvetően C# a nyelv, de ott a LinQ vagy Sql-t is tudok írni
Nekem eddig csak egy dupla for jutott eszembe ahol, amikor külső pId jét megtalàlom a belső rPId-ben, akkor összeadom, és kinullàzom a belső sort , de ez így elég hoki megoldás
-
bandi0000
nagyúr
-
bandi0000
nagyúr
Szerintem is, nem is jókedvemből akartam volna refaktorálni, csak jó lenne kicsit fejlődni, mert sajnos nem nagyon van senki aki "refaktoráljon", így az ilyeneken kicsit elszoktam agyalni, hogy jó-e így, nem-e lehetne szebben, persze nyilván azt meg tudjuk, hogy senki nem fizeti azt, hogy szebb lett
-
bandi0000
nagyúr
Az a szép benne, hogy csak az árszabályok mondják meg, hogy mit vesznek előre, gyakorlatilag egy sorrendet állít felm mégha nem is minden esetre
IGazából az, hogy honnan jön az ár nem is lényeg, ugyan sok fajta kedvezmény van, mondjuk 6-7 fajta, termékhez, termékcsoporthoz, ügyfélhez stb-hez kapcsolódnak, viszont a lényeg, hogy van egy listám, amiben jelenleg el vannak ezek tárolva, egymás után lekérdezve ugye
Egyik sem feltétlen olcsóbb vagy drágább mint a többi
Pl Egyedi ár 2000Ft, Márka kedvezményes ára: 1600Ft, Akciós ár: 1000Ft1. Szabály: Egyedi ár vagy legkedvezőbb esetben akkor az 2000 Ft lesz
2. Szabály: Legolcsóbb ár: Akkor is 1000Ft lesz
Pl Márka kedvezményes ára: 500Ft, Akciós ár: 650Ft, Termékcsoport kedvezményes ár: 300Ft
1. Szabály: Egyedi ár vagy legkedvezőbb esetben akkor az 300 Ft lesz
2. Szabály:Akciós ár vagy legolcsóbb: Akkor is 650Ft lesz
Igazából már létező rendszer, de ott jelenleg csak az egyedi ár, vagy legkedvezőbb ár szabály van, és pont ez a gond, mert jött másik ügyfél, aki mást akar, plusz ez ugye elméletileg bármikor kapcsolható, szóval így nem teljesen jól működik -
bandi0000
nagyúr
válasz
dabadab #14822 üzenetére
Szinte igen bàr megpróbálom valós példákkal
Adottak a következő àr típusok: Egyedi ár, Akciós ár, Márka kedvezmény, Termék csoport kedvezmény
Van 3 Fajta àrazási szabàly : Egyedi àr vagy legolcsóbb, Akciós ár vagy legolcsóbb, Legolcsóbb
1. szabálynál, ha van egyedi ár akkor azt, ha nincs, akkor a maradékból a legolcsóbbat használja
2. Hasonló, csak akciós árral
3. Az összes közül a legolcsóbbat veszi ki
Persze lenne olyan is, hogy egyéni sorrend van köztük, de ez már lehet meg se valósul
Igazábó olyasmi dolgot szeretnék ami "legenerálja" anélkül, hogy tele raknám if-el, vagy return-el, illetve könnyű legyen újat hozzátenni
Olyasmire gondoltam, hogy lehetne az egyes àrakat súlyozni, és a legolcsóbb kategóriás árakat ugyan azzal a súllyal jellemezném, és ekkor választanán ki a legolcsóbbat
Persze ez lehet hülyeség
-
bandi0000
nagyúr
Egy kis segítséget kérnék, hogy miképp lehetne szépen megoldani az alábbi feladatot
Adott egy árazó osztály, 3 fő árszabály van, vagy egyedi árat, vagy akciót, vagya többi fajtából a legkisebb árát vesszük figyelembe
Ezeknek különböző permutációját lehet beállítani, asszem most 3 fajta van
-Egyedi ár vagy legkedvezőbb ár a többi típusból
-Legkedvezőbb ár
-Akció vagy legkedvezőbb ár a többi típusbólEgyedi ár, akció és a többi fajtára mind van 1-1 fv az osztályon belül, ami visszaadja az árat
Nekem egyfajta megoldás jut eszembe hirtelen, 3 fő fv ami a szabályokat tartalmazza, és aszerint hívja meg a különböző fv-ket, nyilván ez annyira nem lenne szép
Van erre valami tervezési minta, amit ilyesmire lehetne alkalmazni?
-
bandi0000
nagyúr
válasz
DrojDtroll #14795 üzenetére
most néztem a felületen, de nem láttam, szerveren mit kellene kitörölni ami megoldhatná a problémát?
Mondanám, hogy a kód szar vagy a build def, de eddig működtek, és most 1 csapásra elszáll
-
bandi0000
nagyúr
válasz
DrojDtroll #14793 üzenetére
Hàt ez jó kérdés, ma megyek be, hogy lehet ezt kideríteni?
-
bandi0000
nagyúr
Használ valaki TFS build szervert?
Eléggê új vagyok a cégnél, de nincs már ott aki konfigolta, viszont az Android build nem akar lefutni, se az új, se a régi, ami már lefutott, teljesen lehetetlen hibát dob, hogy class name duplicated, de nyilván nem az, ezért gondoltam, hogy valami beakadhatott, de fogalmam sincs hogy kellene cache-t törölni
-
bandi0000
nagyúr
Ha màr sajàt munka/bemutató projekt, mi az amit érdemes csinàlni? Most jelenleg egy weboldalt csinàlgatok, 1-2 érdekesebb dolgot megvalósítottam benne, de egy idű után szinte csak a CRUD műveletek és azok megjelenítése van
Asztali appon is agyaltam java spring és swing, viszont nem tudom mi az ami nem túl bonyolult de nem is túl egyszerű feladat
-
bandi0000
nagyúr
válasz
janos1988 #14153 üzenetére
Azt felejted el, hogy a tömbök mindig 0-tól indeelődnek, szóval valójában ha 1-ről indítod a ciklust, akkor a "z" -vel kezdItt lehet rosszra gondolok, bár a "<>" operátor sztem a != akar lenni nem?Mert itt nem a length(s1)-ig kell menni, hanem s1-1 ig, mivel 0-val kezdődik az index ugyeif (s1[i]<>#32) and (i<>length(s1))
Sőt, most utánaolvasva elvileg a stringek 1-től indexelődnek, akkor mind1, akkor meg length+1-ig kell menniSilεncε:
Nekem is hálistennek, csak okoskodni próbálok
-
bandi0000
nagyúr
válasz
Young92 #13941 üzenetére
Visszaolvasol 1-2 oldalt, akkor kb minden 5. hsz erről szól
Röviden, találd ki, hogy milyen irányba akarsz menni, frontend vagy backend, és azon belül, hogy milyen nyelvet preferálsz
Ha megy az angol, akkor jobban jársz online kurzusokkal, tutorialokkal sztem, és valszeg olcsóbban is kijösz
-
bandi0000
nagyúr
válasz
martonx #13934 üzenetére
+1
Néztem ezt az amazon s3 at, ez elvileg teljesen ingyén van
De ha azt akarom, hogy a felhasználó is tölthessen fel file-t, akkor azt frontenden kell megcsinálni, az nem rossz megoldás? Bár más nem nagyon jut eszembe, vagy akkor ezt nem frontenden keresztül kell csinálni, hanem gondolom van annak is egy felülete, ahol meg lehet ezt oldani
-
bandi0000
nagyúr
Köszönöm mindenkinek
-
bandi0000
nagyúr
válasz
bandi0000 #13930 üzenetére
mondjuk nem szóltam, majd megpróbálom belőni ezt a minio-t
Amúgy sac/kb mekkora egy komplett weboldal éves üzemeltetése, ha pl valami felhő tárhelyet használok az adatokhoz, aztán frontend backend, mondjuk azt nem tudom, hogy kell e adatbázisszerver, vagy az ott fut ahol a backend?
-
bandi0000
nagyúr
válasz
haxiboy #13923 üzenetére
ohh vàgesz, köszönöm, valamiért azt hittem ezt is backenden kell tàrolni egy mappában mint a képeket, viszont adatbázisba meg egyszerűbb
Hál istennek nem kell titkosítani, mert ezek publikus adatok
Igazából [ezt] akarom megcsinálni, de ahogy látom itt vannak képek is, szóval ez lehet az általad említett mappafelolvasós móka
-
bandi0000
nagyúr
Nehány weboldalnál làtható, hogy a letőlthető fájlokat ilyen mappastruktúra szerűen rendezik, frontenden nagyjából van tippem, hogy csinálják, de backenden mi a metodika erre?
Esetleg olyat tudnék elképzelni, hogy egy endpoint visszaadja az adott mappán belül létező mappa és fájlneveket, és ezt jelenenítem meg mindig frontenden ?
-
bandi0000
nagyúr
válasz
dabadab #13919 üzenetére
Magam részéről azért segítettek az algoritmus óràk mégha akkor màr nem is sokat :D
Tényleg nem tudom, de emlékszek arra, hogy régen sokat szenvedtem az emelt érettségi feleadatokkal, legalább is a vége fele, azok voltak a nehezek, meg ugye egy rendezést is kb úgy csináltam, hogy emlékeztem milyen forból lehet összepattintani, de hogy miért úgy működött azt nem tudtam
Lehet nem az alap dolgok segítettek, hanem a prog óràk, ezt már nem tudom, talàn az a legjobb ha a kettőt szimultán csinálják, most pl egy bubi rendezés fejben "lejàtszani" le lehet, utána màr implementàlni semmi
-
bandi0000
nagyúr
válasz
martonx #13907 üzenetére
Jaja, cross plattform lenne a menő, de jelenleg hobbiprojektezek .net.ben is, aztàn egy rég óta tervezett appot akarok gyorsan összedobni, ami nem lesz gyors, mert ha már ennyire elterjedt a "kotlàny" akkor abban csinálnám, viszont most a java után újra kell tanulnom :D
-
bandi0000
nagyúr
válasz
martonx #13902 üzenetére
Köszönöm mindenkinek!
Jaja vàgom, hogy nem lehet épp úgy kezelni mintha sql lenne, viszont amit szeretnék csinálni ahhoz tök jó, és egy ideig ingyenes a firebase, elvileg meg lehetne oldani azt is amit én akarok, bàr gondolom nem lenne szép, és elvesztené a lényegét, viszont akkor nem kellene egy szervert csinálni meg a signalR-el csinálni egy backendet
-
bandi0000
nagyúr
2 Kérdés felmerült bennem, mégpedig ilyen hogyis csináljam című dolog :D
Ja egy weboldalon olyat szeretnék megvalósítani mint itt a ph-n az új komment hozzáadása, hogy lehet formàzni a szöveget, ez okê, text editor, de ha közbe képeket is szeretnék beszúrni? Akkor csak simán feltöltöm a szerverre, és egy stringként elmentem a hivatkozásàt? Vagy adatbázisba rakom base64 ként, és minden kommentnél lekérem, vagy visszadom egybe?
A mási;
Ez viszont NoSql, Firebase Firestorm , nem tudom hogy lehet.tárolni az adatokat,amit pl sql ben 3 táblában tàrolnék a több a többhöz kapcsolat miatt? Pl vannak felhasználók, akik több termék közül vàlaszthatnak -
bandi0000
nagyúr
válasz
martonx #13880 üzenetére
Jah hát jah igaz
Jó hát ha ingyenes az, akkor arra tényleg jó, azt hittem fizetős, azért írtam, hogy azért nem fizetnék
De amúgy nagyon sok youtube lejátszási lista van, ami nem csak feladatot magyarázza, hanem az alapokat is, nyilván kell hozzá egy angol tudás, vagyis inkább indiai angol
-
bandi0000
nagyúr
Én csak úgy értem, hogy ha a tutorialba rögtön használják pl a SOLID elveket, amiket nem szoktak külön elmagyarázni, hogy mit miért pont úgy csinálnak, akkor lesz egy nagy fekete folt, viszont ha előtte legalább olvas róla, hogy van ilyen, még ha nem is érti rögtön, de mégis össze tudja majd kötni a dolgokat, ha használja
Silεncε: Igazából én csak úgy értem ezt, hogy vannak olyanok, akiknek annyira nincs érzékük ehhez, hogy nem tudják elképzelni se, hogy hogyan lehetne megvalósítani egy buborék rendezést, szóval nyilván sok mindentől függ, hogy kiből lesz programozó, de egyfajta huzalom,tehetség kell hozzá, és lehet valaki végignéz több 100 óra tutorialt, és mégse fog ráállni az agya
-
bandi0000
nagyúr
válasz
fabri07 #13875 üzenetére
Na ez az amiért biztos nem fizetnék
Amit az egyetemen tanítanak, az nem a programozás, hanem a képzés alatt az algoritmikus gondolkodás, és a probléma megoldó képesség lesz meg, illetve ez mellé "megtanulod hogyan kell tanulni".
Azt tényleg nem tudom, hogy egy olyan személynek, akinek nincs semmilyen tapasztalata a fejlesztéssel, az hogy tud tanulni, de sztem érdemesebb nem rögtön fejjel beleugrani a fejlesztésbe, hanem a inkább utánanézni egy kicsit a nyelvfüggetlen dolgoknak.
Gondolok itt az alap algoritmusokra, és megvalósításukra, OOP szemlélet, a legtöbb tutorial videó ami a neten elérhető, az feltételezi, hogy ezek nagyjából megvannak, és úgy sokkal érthetőbbek.
-
bandi0000
nagyúr
válasz
martonx #13828 üzenetére
Köszi erre rálesek akkor
Igen az zavar be, hogy amikor említette, hogy google-el jelentkezek be, akkor rendszerint a kliens átirányít a google bejelentkező felületére, és az vissza az én weboldalamra
Mondjuk ha jól rakom össze a dolgokat, amit mondtál és Silεncε mondott, akkor kliensen bejelentkezek pl a google-el, és ott csak egy Authorization tokent kapok, amit átdobok a serverre, az meg kér úgyszint a google-en keresztül egy acces tokent és refresh tokent az Authorization token segítségével
De am hallottam olyanról is, hogy amíg aktív a felhasználó x ideig, addig nem jelentkezteti ki, ezt hogy valósíthatják meg? Nem mintha ilyen célom lenne, csak itt valami olyasmire gondolok, hogy a tokeneket minden kérésnél cserélik, hogy mindig a legfrissebb legyen
Silεncε: Igazából szerintem segített, valami hasonlóra gondoltam én is, csak megerősítés kellett
majd a megkapott authorizatiob tokent kliens oldalon cserelem AT meg RT-re és ezeket kuldom el a szervernek
Tehát a kliensen kéred az acces és refresh tokent is ? De akkor a szerver, honnan fogja tudni, hogy valid e pl?És még1 kérdés, a Refresh Tokent hol célszerű tárolni, sok verziót ovlastam, nekem eddig a legszimpatikusann a server oldalon DB-ben való tárolás
-
bandi0000
nagyúr
Lenne egy kérdésem, mert kezdem elveszettnek érezni magam az authentication és authorization világában
Biztos én vagyok a suta, de nem találok tényleg jó leírásokat mind a JWT mind az Oauth2 megvalósításához, tényleges alkalmazásban
JWT esetében már van egy olyan app, amiben egy sima access tokent használok fix lejárati idővel, viszont a refresh token nem tudom hogy pontosan hogy használjam, mármint az elképzelésem róla:
Kap a kliens egy access és egy refresh tokent
Access tokent használja míg le nem jár
Ha lejárt, akkor a refresh-el kér egy új access tokent és megy minden mint a karikacsapás
És itt a köd, az access token meddig érvényes? örök életű, vagy simán hosszabb életű pl 1-2 nap? Ha lejár, akkor viszont automatikusan login-ra irányítok?A másik az Oauth2 erről is olvasgattam, néztem tutorialt, de nem nagyon áll össze a kép a konkrét megvalósítással, ugyanis nekem a tervben van egy .net Core rest api és Angular kliens
A tutorialokba vagy facebook/google által jelentkezett be, vagy ha jól értettem, akkor egy Identity Servert használt
Szóval ha pl google-t használok, akkor elvileg megkaphatok egy tokent, amivel kérhetek egy access tokent, vagy megkaphatom, a felhasználó adatait is, ez utóbbi esetben gondolom eljuttatom a rest api-hoz, elmentem és oké, de akkor is kellene valami token, amivel tudom azonosítani nem ?
Vagy ha eleve az access tokent kérem a kliensről, akkor azt valahogy a szerveren is kellene validálni és úgy engedélyezni a dolgokat
Szóval inkább az oauth2 ami ködös, illetve sok weboldalnál használják, azt, hogy simán beregisztrálhatnak, vagy bejelentkeznek social accal, itt is a kérdés, hogy milyen tokent használnak, vagy hogy működik az authorization regisztráció/bejelentkezés után?
Kicsit hosszú lett, de ha valaki pár mondatban útbaigazít azt megköszönöm
-
bandi0000
nagyúr
Hàt ha valaki feljebb akar jutni annak biztos ez kell, ambíciózusnak kell lenni, én is úgy vagyok vele, hogy ha a cégnél a napi feladatokat el tudom látni, akkor persze pl hêtvêgente esetleg más nyelvet is tanulhatok, de nem vagyok benne biztos, hogy meló után lenne kedvem, pláne, hogy nem szeretek félbehagyni semmit, mert akkor képest vagyok felkelni hajnalba és próbàlkozni vele :D
-
bandi0000
nagyúr
-
bandi0000
nagyúr
Én is sokszor hallottam ez, én sem értem teljesen, màrmint persze fontos, hogy ne mindent a cégnél tanulj meg de az az első x időre vonatkozhat meg esetleg ha jön valami újabb tech amit be akarnak vezetni, de az hogy minden nap még meló után ahonnan jó esetben is 5-6 mire hazaér az ember aztán még kaja után 10 ig ezzel foglalkozik azt sztem meg sem fizetik meg nem is lehet bírni
-
bandi0000
nagyúr
Annyi kiegészítés, hogy az if let-re azért van szügség, mert swiftben csomó változó optional tipusú, és ezáltal csak akkor tudod használni ha kicsomagolod, ezáltal el lehet kerülni a hibákat, amik a null miatt lehetnek
Amúgy ennél egyel jobb megoldás a guard, mert ezzel kiküszöbölhető a sok if let
És arra én sem emlékszek, hogy lehet e érték nélkül létrehozni konstanst, de szerintem igen, és nem null lesz hanem nil
Amúgy annyira nem rossz ez a nyelv, igaz én közvetlenül az Android programozáshoz hasonlítottam, sok okos dolog van benne, viszont ami idegesítő, hogy logika nélkül adtak más neveket benne pl:
Null helyett Nil
Interface helyett ProtocolNyilván ezek megszokhatók, csak felmerül az emberben a kérdés, hogy miért, jah és ugye kizárólag OSX-en lehet fejleszteni, ez is bosszantó, hogy OSX-en talán minden nyelven lehet fejleszteni, viszont apple termékre meg csak OSX-en lehet
-
bandi0000
nagyúr
Köszönöm mindenkinek, nagyjából így meglett a csapásirány
-
bandi0000
nagyúr
válasz
instantwater #13432 üzenetére
Köszönöm, most nekem is ez a tervem, egy kis webszolgàltatàst összedobni a szakdogàm mellé gyakorlàsnak és ref melónak biztos jó lesz
Pestet én se csipàzom, persze ellennék ott de a 150k-s albérlet riaszt, mert ha azt nézem hogy kapnék egy viszonylag korrekt 300k-t nettóba, akkor abból maradna kb 100 jó esetben, szal max feljàrnék kocsival
Angliàn én is agyaltam rêgen, de az max êvek múlva jobb esetben, tapasztalat szerzés utàn, de az meg mêg messzebb van mint pest :D
martonx: Lehet igazad van. 3 helyen voltam eddig, 2 utasított el, a 3. függőben van, akkor inkàbb specifikusan kezdek el tanulni, aztán úgy keresni melót
-
bandi0000
nagyúr
válasz
instantwater #13426 üzenetére
Nyilván nem szó szerint értettem amit írtam.
De most pl elkezdtem a .Net Core-ba beleásni magam, és minnél többet tudok, annál kevesebbet. Tehát nem tehetem meg azt, hogy hónapokig itthon készítem fel magam .Net-ből, amíg végre azt érzem, hogy ez elég, aztán a végén meg pont nem lesz hirtelen olyan állás ami megfelne, csak más nyelvekből.
(#13427) flimo: Egyértemű, hogy dolgoztam volna ha tehettem volna, itt vidéken még nem diák meló sincs, nem hogy diákmeló a szakmában, + hiába menne kurva jól a programozás a többi tárgy miatt nem mertem levelezőn csinálni.
Így is úgy is agyalok levező MSC-n, bár ahogy most látom a dolgokat, mindent megéri csinálni csak tanulni nem
-
bandi0000
nagyúr
Úgyse nagyon pörög a fórum, bedobok egy beszélgetős témát
Egy friss diplomás, hogyan helyezkedjen el a szakmában, mit kellene tenni?
Voltam 1-2 helyen interjún, de kevésnek bizonyolultam, ami leginkább akkor jött ki, mikor specifikus kérdéseket kaptam a technológiáról.
Csinálgattam 1-2 alkalmazást magamtól, meg 1-2 dolgnál nyelvnél megtanultam az alapokat, de néha úgy érzem, hogy bármennyire is beleásnám magam a dolgokba, mégse elég. Nyilván mindenki azt mondja hogy elég 1 nyelvet tudni, a többire könnyű átülni, ez addig igaz is míg Hello Word appokat akar írni valaki, de rengeteg nyelv specifikus dolog, tervezési minta, egyéb specifikus minták vannak, amik eltérnek cégenként. Tehát mégha az mondom szánok rá 1-2 hónapot a saját magam képzésére mélyebb szinten, munkakeresés előtt, akkor se tudom, hogy milyen úton induljak el.Most eléggé kifordított példa, de ha én kiképzem magam teszem azt C#-ból, és megkérdezik, a Java-s interjún, hogy a Java-ban String kis vagy nagybetűs. (Hülye példa de talán szemlélteti amit gondolok). Na és 2-3 ilyen kérdés amin elhasal a pályázó, és máris nem adnak neki esélyt.
Szóval van esetleg 1-2 jó ötletetek mit kellene csinálni? (Másik szakma nem játszik
)
-
bandi0000
nagyúr
válasz
martonx #13401 üzenetére
Így màr értem mi a baj a Web fejlesztőkkel... Nekem meg se fordult a fejemben, hogy Word Presst "fejlesszek", nàlam a webfejelsztés azt jelenti, hogy valami keretrendszerrel pl Angular csinálni valamit, minimàlis css, ink Bootstrap, vagy Material
Webfejlesztésbe nekem is a hàttérkódolás része tetszik jobban, csak html meg css től fràszt kapnék hosszú tàvon :D
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Luck Dragon: Asszociációs játék. :)
- Autóhifi
- Álláskeresés, interjú, önéletrajz
- SONY LCD és LED TV-k
- Épített vízhűtés (nem kompakt) topic
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Nintendo Switch 2
- Milyen okostelefont vegyek?
- Amlogic S905, S912 processzoros készülékek
- BestBuy topik
- További aktív témák...
- QNAP TS-932X - 10 gigabites NAS - 5x4TB HDD + 4x400G SSD
- SPIRIT OF GAMER Race Wheel PRO 2 kormány minden tartozékával mekgímélt állapotban eladó!
- Playstation 5 Drive Edition 825GB (CFI-1116A), 6 hónap garanciával, Bp-i üzletből eladó!
- Apple Watch Series 7 41mm NIKE GPS
- Acer Nitro XV340CKP WQHD 144HZ IPS KALIBRÁLT
- Eladó karcmentes Apple iPhone 12 128GB / 12 hó jótállással
- HIBÁTLAN iPhone SE 2020 64GB White -1 ÉV GARANCIA - Kártyafüggetlen, MS2906, 100% Akkumulátor
- HP ZBook Studio G7 i7-10850H 32GB 512GB Nvidia Quadro T1000 15.6" FHD 1 év garancia
- Tablet felvásárlás!! Apple iPad, iPad Mini, iPad Air, iPad Pro
- MSI Z77 MPOWER Alaplap eladó
Állásajánlatok
Cég: FOTC
Város: Budapest