2023-04-03 Kristiana Henina Code Review

 

Review

  1. String funkcijas nesalīdzina izmantojot Equal raksta ar operatoru value == value2 Neizmantot .First() ja eksistē .FirstOrDefault() - otrajā gadījumā var izvairīties no null exception

image-20230403161740047

 

  1. Novērst to, ka šeit 2x viens un tas pats kods if blokos - newChild daļa var būt kopīga image-20230403162947031

 

  1. Mainīgais nevar saturēt _ underscores, padodot funkcijai, novērst arī, ka tiek glabāts gan SelectionFile, gan fileDAD, gan selectionFileCollection image-20230403163034315

 

  1. Novērst nesaprotamus mainīgo nosaukumus - Nevar būt, ka UI elementi tiek saukti selectionFileCollection pārsaukt uiSelectedItems Savukārt nedrīkst saukt kaut ko SelectionFile , ja tas īstenībā ir ar tipu SelectionFileDAD, piemērtos nosaukums būtu CurrentSelectionFileDAD . Vai vispār ir nepieciešams šeit ObservableCollection? Kāpēct tur nevar iztikt ar property uz vienu UI Item? image-20230403163239989

 

  1. Visur kur ir potenciāli crashable array selections kā arr[n]

    arr?.Skip(n)?.FirstOrDefault()

    https://stackoverflow.com/questions/37040372/null-conditional-operator-to-nullify-array-element-existence

    https://thedotnetguide.com/null-conditional-operator-in-csharp/

    Vai arī lietot IF statment un check Length / Count

  1. Pat ja beigās izmantos kopīgu funkciju, katram event listeneram likt sākotnēji savu, jo vēlāk būs vieglāk atsekot un uzturēt kodu image-20230403165621356

 

Peak table

Kā piemēru var skatīties UserControlViewData.uiDataGridPeaks UserControlViewData.IntegrationDataTable

Paši dati atrodas iekš SelectionFileDAD.IntegrationDataSet BET tie tiek saglabāti tikai konkrētai viļņu garumu kombinācijai, tiklīdz šo kombināciju pamaina ir jāveic pa jaunu “integrācija”, jeb pīķu atrašana hromatogrammā, to var salīdzinoši viegli izdarīt uz parent vai selected izsaucot SelectioFileDAD.Integrate(...) funkciju, jāpato darī:

Šos parametrus kā dizainā var ievadīt virs peak table ar ievades laukiem. Tāpat ir jāvar ar varu likt pār-integrēt izmantojot tās funkcijas

Iezīmētās pogas vajag jau tagad sakodēt un sajūgt ar Integrate funkciju image-20230403171007207

Ja iepriekš jau dotajā viļņa garumu konfigurācijā bija atrasti pīķi, tad nevajadzēs uzreiz integrēt, bet ja nav pīķi tad nepieciešams nointegrēt fonā

 

Chromatogramu pārklāšanās

Vecajā versijā bija iespējams, ja ar peli sāk vilkt chromatogrammu, tad ieslēdzas UserControlViewData.m_isOffsetModeOn pamainīt pašā SelectionFileDAD iekšpusē OffsetWavelength un OffsetIntensity, kas nodrošina, ka var pabīdīt Oxplotā chromatogrammas tā, lai ērtāk salīdzīnāt, kā arī by default jau pārklājot jāpiedāvā tādi offseti, lai chromatogrammas būtu mazliet vienas no otras nobīdītas un ar tām varētu ērti strādāt (ja visas viena otrai virsū, tad pat sagrābt tās būs grūti)

Lai saprastu kā implementēt apskatīt šos