La frase "range for R1-1 through R10H" ha effettivamente un significato concordato? [chiuso]

-1

Recentemente ho inviato un test di codice da parte di un potenziale datore di lavoro da completare nel mio tempo libero. La prima domanda ha a che fare con l'identificazione se un determinato codice di zonizzazione rientra in un intervallo di codici. Non sto cercando la soluzione effettiva ( qualcun altro lo ha già provato su SO ) e ho già rifiutato di fare il test poiché ero frustrato da questa domanda e da un altro che riguardava lo scraping dello schermo in cui il sito in questione era in manutenzione.

La mia domanda è solo se gli "intervalli" descritti sono ambigui o no. C'è qualche standard che definisce chiaramente cosa si intende per "M1-1 / R5 - M1-6 / R10"? C'è un suggerimento per il primo intervallo che sembra suggerire che questa potrebbe essere una domanda autonoma che non richiede alcuna conoscenza specifica del dominio, eccetto molti degli input test, come C4-4A (nessuna lettera menzionata nell'intervallo con i codici C), sembra che non si trovino in nessuna delle gamme finché non si ricercano i codici di zonizzazione a New York e si scopre che sono effettivamente validi, come mostrato in questo documento . Ecco la domanda originale:

Question 1 Description: Write a method which accepts a list/array of codes and returns the code along with its description as JSON. Note that the range for R1-1 - R10H encompasses R1-1 to R10-10 and R1A to R10H.

Bonus: Write a unit test.

Description Data:
Codes               Descriptions
---------------------------------------------------------------
R1-1 - R10H         General Residence Districts
C1-6 - C8-4         Commercial Districts
M1-1 - M3-2         Manufacturing Districts
M1-1/R5 – M1-6/R10  Mixed Manufacturing & Residential Districts
BPC                 Battery Park City
PARK                New York City Parks
PARKNYS             New York State Parks
PARKUS              United States Parks
ZNA                 Zoning Not Applicable
ZR 11-151           Special Zoning District

Example output:
Given ['M3', 'R3-2', 'PARKNYS', 'M1-3/R9']
{
    "codes":[
        {"code":"M3", "description”:”Not found“},
        {"code":"R3-2", "description":"Residential Districts"},
        {"code":"PARKNYS", "description":"New York State Parks"},
        {"code":"M1-3/R9", "description":"Mixed Manufacturing & Residential Districts"}
    ]
}

Input:
The list is:
    R7A
    R8A
    C4-4A
    M3-2
    R8B
    C1-6A
    R7B
    R8X
    C1-7A
    PARK
    C1-9A
    R6
    C1-7
    C2-6
    R10
    C4-5
    C6-3X
    C1-6
    C6-2M
    C6-4M
    M2-4
    M1-5/R7X

AGGIORNAMENTO: La risposta di MichaelT dà alcuni buoni punti, ma non sono d'accordo sul fatto che il suggerimento nella prima domanda ti fornisca l'elenco completo dei codici di zonizzazione. Lo fa solo per il primo intervallo.

    
posta regularmike 15.03.2015 - 22:37
fonte

1 risposta

5

La descrizione dell'intervallo è scadente. Tuttavia, è chiaramente definito nei codici di zonizzazione.

Dalla sezione 11-122 di Risoluzione zonatura (versione Web) (il link pdf)

R1-1   Single-Family Detached Residence District
R1-2   Single-Family Detached Residence District
R1-2A   Single-Family Detached Residence District

R2     Single-Family Detached Residence District
R2A    Single-Family Detached Residence District
R2X    Single-Family Detached Residence District

...

R9     General Residence District
R9-1   General Residence District
R9A    General Residence District
R9D    General Residence District
R9X    General Residence District

R10    General Residence District
R10A   General Residence District
R10H   General Residence District
R10X   General Residence District

Pertanto, R1-1 - R10H è destinato a trasmettere questo intervallo.

Lo affrontiamo, spesso nel mondo reale la logica aziendale è mal definita. Sintesi della logica sono anche peggio. È responsabilità del programmatore cercare chiarezza sui requisiti scarsamente definiti. In questo caso, ciò viene fatto esaminando il commento associato che fornisce la lista completa dei codici di zonizzazione accettabili.

A questo punto, è possibile inserire tutti i codici di zonizzazione in un dizionario e non preoccuparsi affatto degli intervalli se lo si desidera (leggerei il dizionario da un file di dati associato, ma questo è solo per me). Questo è probabilmente il migliore in quanto non esiste un intervallo per questi. Qualsiasi regex per cercare di far corrispondere solo quelli descritti sarebbe irrimediabilmente complessa.

Dovrebbe essere perfettamente accettabile restituire un errore quando qualcuno passa l'informazione R9-2 dal momento che non è un codice zoning valido. Ma questa è la mia opinione sui requisiti.

In caso di dubbi sui requisiti, chiarire i requisiti. Non indovinare i requisiti: spesso puoi ritrovarti a programmare per un periodo di tempo solo per scoprire di aver frainteso il primo giorno e di aver imboccato la strada sbagliata.

Sì, questo è apparentemente parte di un test di colloquio di lavoro. Ricorda che la programmazione non è solo la scrittura del codice, ma anche la raccolta di requisiti (e molte altre cose).

    
risposta data 15.03.2015 - 22:52
fonte

Leggi altre domande sui tag