SlideShare a Scribd company logo
1 of 129
PROSTOTA
NIE JEST ŁATWA
GRZEGORZ GAŁĘZOWSKI
MOTOROLA SOLUTIONS
To powinno być
proste!
proste!
proste!
proste!
proste!
proste!
proste!
CZYM PROSTOTA NIE JEST
PAGE 9
To powinno być
proste!
To powinno być
znajome!
public static List<T> QuickSort<T>(List<T> values)
where T : IComparable
{
if (values.Count == 0)
return new List<T>();
T firstElement = values[0];
var smallerElements = new List<T>();
var largerElements = new List<T>();
for (int i = 1; i < values.Count; i++)
{
var elem = values[i];
if (elem.CompareTo(firstElement) < 0)
smallerElements.Add(elem);
else
largerElements.Add(elem);
}
var result = new List<T>();
result.AddRange(QuickSort(smallerElements.ToList()));
result.Add(firstElement);
result.AddRange(QuickSort(largerElements.ToList()));
return result;
}
Source: http://fsharpforfunandprofit.com/posts/fvsc-quicksort/
let rec quicksort list =
match list with
| [] ->
[]
| firstElem::otherElements ->
let smallerElements =
otherElements
|> List.filter (fun e -> e < firstElem)
|> quicksort
let largerElements =
otherElements
|> List.filter (fun e -> e >= firstElem)
|> quicksort
List.concat [smallerElements; [firstElem]; largerElements]
Source: http://fsharpforfunandprofit.com/posts/fvsc-quicksort/
To powinno być
proste!
To powinno pasować do mojego
mentalnego modelu!
public interface X
{
}
public interface X {
}
Zrobiłem to najprościej
Zrobiłem to najłatwiej
ŁATWE
minimalny wysiłek prowadzący do celu
PROSTE
usunięcie wszystkiego z wyjątkiem tego, co istotne
Ctrl+C
Ctrl+V
PROSTSZE
To powinno być
proste!
Nie rozumiem istoty problemu
if(lid.OldUpdateParameters == null)
{
lid.OldUpdateParameters = new UpdateParameters(lid.UpdateParams);
}
if(cadence.HasValue) // there is ack
{
cadenceToSend = cadence.Value;
}
else
{
if (lid.OldUpdateParameters.MinFrequencyUpdateEnabled.HasValue &&
lid.OldUpdateParameters.MinFrequencyUpdateEnabled.Value)
{
cadenceToSend = lid.OldUpdateParameters.MinFrequencyUpdate;
}
}
if (distance.HasValue) // there is ack
{
distanceToSend = distance.Value;
}
else
{
if (lid.OldUpdateParameters.DistanceUpdateEnabled.HasValue &&
lid.OldUpdateParameters.DistanceUpdateEnabled.Value)
{
distanceToSend = lid.OldUpdateParameters.DistanceUpdate;
}
}
if (maxTime.HasValue) // there is ack
{
maxTimeToSend = maxTime.Value;
}
else
{
if (lid.OldUpdateParameters.MaxFrequencyUpdateEnabled.HasValue &&
lid.OldUpdateParameters.MaxFrequencyUpdateEnabled.Value)
{
maxTimeToSend = lid.OldUpdateParameters.MaxFrequencyUpdate;
}
}
PAGE 34
PAGE 35
POZIOMY ABSTRAKCJI
PAGE 36
YAGNI
PAGE 45
YOU AREN’T GONNA NEED IT
PAGE 46
KOSZT WYTWORZENIA
analiza, programowanie, testowanie
KOSZT OPÓŹNIENIA
innych funkcjonalności
KOSZT UTRZYMANIA
inne funkcjonalności stają się droższe
KOSZT NAPRAWY
przedawniona wiedza/technologia
EWOLUCYJNY DESIGN
if(lid.OldUpdateParameters == null)
{
lid.OldUpdateParameters = new UpdateParameters(lid.UpdateParams);
}
if(cadence.HasValue) // there is ack
{
cadenceToSend = cadence.Value;
}
else
{
if (lid.OldUpdateParameters.MinFrequencyUpdateEnabled.HasValue &&
lid.OldUpdateParameters.MinFrequencyUpdateEnabled.Value)
{
cadenceToSend = lid.OldUpdateParameters.MinFrequencyUpdate;
}
}
if (distance.HasValue) // there is ack
{
distanceToSend = distance.Value;
}
else
{
if (lid.OldUpdateParameters.DistanceUpdateEnabled.HasValue &&
lid.OldUpdateParameters.DistanceUpdateEnabled.Value)
{
distanceToSend = lid.OldUpdateParameters.DistanceUpdate;
}
}
if (maxTime.HasValue) // there is ack
{
maxTimeToSend = maxTime.Value;
}
else
{
if (lid.OldUpdateParameters.MaxFrequencyUpdateEnabled.HasValue &&
lid.OldUpdateParameters.MaxFrequencyUpdateEnabled.Value)
{
maxTimeToSend = lid.OldUpdateParameters.MaxFrequencyUpdate;
}
}
!!?
if(lid.OldUpdateParameters == null)
{
lid.OldUpdateParameters = new UpdateParameters(lid.UpdateParams);
}
if(cadence.HasValue) // there is ack
{
cadenceToSend = cadence.Value;
}
else
{
if (lid.OldUpdateParameters.MinFrequencyUpdateEnabled.HasValue &&
lid.OldUpdateParameters.MinFrequencyUpdateEnabled.Value)
{
cadenceToSend = lid.OldUpdateParameters.MinFrequencyUpdate;
}
}
if (distance.HasValue) // there is ack
{
distanceToSend = distance.Value;
}
else
{
if (lid.OldUpdateParameters.DistanceUpdateEnabled.HasValue &&
lid.OldUpdateParameters.DistanceUpdateEnabled.Value)
{
distanceToSend = lid.OldUpdateParameters.DistanceUpdate;
}
}
if (maxTime.HasValue) // there is ack
{
maxTimeToSend = maxTime.Value;
}
else
{
if (lid.OldUpdateParameters.MaxFrequencyUpdateEnabled.HasValue &&
lid.OldUpdateParameters.MaxFrequencyUpdateEnabled.Value)
{
maxTimeToSend = lid.OldUpdateParameters.MaxFrequencyUpdate;
}
}
YAGNI!!
Yagni (...) does not apply to effort
to make the software easier to
modify.
Martin Fowler
Yagni is only a viable strategy
if the code is easy to change.
Martin Fowler
EWOLUCYJNY DESIGN
EWOLUCYJNY DESIGN
EWOLUCYJNY DESIGN
SŁABA JAKOŚĆ KODU
SŁABA JAKOŚĆ KODU
SŁABA JAKOŚĆ KODU
SŁABA JAKOŚĆ KODU
To powinno być
proste!
Można to zrobić prościej!Można to zrobić prościej!
PAGE 65
PAGE 66
PROBLEM
brak wspólnego zrozumienia prostoty
PROBLEM
brak sposobu, żeby osiągnąć prostotę
…
…
…
…
…
…
CZTERY ZASADY
PROSTEGO DESIGNU
PAGE 70
WSZYSTKIE TESTY PRZECHODZĄ
PRZEKAZANA INTENCJA
BRAK NADMIAROWOŚCI
MINIMALNA LICZBA KLAS I METOD
WSZYSTKIE TESTY PRZECHODZĄ
PRZEKAZANA INTENCJA
BRAK NADMIAROWOŚCI
MINIMALNA LICZBA KLAS I METOD
TEST
TEST
TEST
WSZYSTKIE TESTY PRZECHODZĄ
PRZEKAZANA INTENCJA
BRAK NADMIAROWOŚCI
MINIMALNA LICZBA KLAS I METOD
double CmToM(double value)
{
return value/100;
}
double PercentToFraction(double value)
{
return value/100;
}
When 5 things need to change for
the same reason, Shalloway will find
at most 4
PRAWO SHALLOWAYA
When 5 things need to change for
the same reason, Shalloway will find
at most 4
Kiedy koncepcyjnie tę samą zmianę
trzeba wprowadzić w 4 miejscach,
Shalloway znajdzie maksymalnie 3.
STRUKTURA
PRZEKAZANA INTENCJA
MINIMALNA LICZBA KLAS I METOD
BRAK NADMIAROWOŚCI
WSZYSTKIE TESTY PRZECHODZĄ
Mamy narzędzia do analizy przepływu…
…lecz nie do analizy intencji
if(message.AgeBit == 1)
{
foreach(var codeword in message.Codewords)
{
if(codeword.Id == 0x12)
{
currentCodewords.Add(codeword);
}
}
}
if(message.AgeBit == 1)
{
foreach(var codeword in message.Codewords)
{
if(codeword.Id == 0x12)
{
currentCodewords.Add(codeword);
}
}
}
if(IsMostRecent(message))
{
foreach(var codeword in message.Codewords)
{
if(IsVoice(codeword))
{
voiceSequence.Add(codeword);
}
}
}
if(IsMostRecent(message))
{
foreach(var codeword in message.Codewords)
{
if(IsVoice(codeword))
{
voiceSequence.Add(codeword);
}
}
}
if(message.IsMostRecent())
{
foreach(var codeword in message.Codewords)
{
if(codeword.IsVoice())
{
voiceSequence.Add(codeword);
}
}
}
if(message.IsMostRecent())
{
foreach(var codeword in message.Codewords)
{
if(codeword.IsVoice())
{
voiceSequence.Add(codeword);
}
}
}
if(message.IsMostRecent())
{
message.AggregateVoiceInto(voiceSequence);
}
if(message.IsMostRecent())
{
message.AggregateVoiceInto(voiceSequence);
}
ABSTRAKCJE
USUŃ
NADMIAROWOŚĆ
PRZEKAŻ
INTENCJE
STRUKTURA
ABSTRAKCJE
http://blog.thecodewhisperer.com/2013/12/07/putting-an-age-old-battle-to-rest/
USUŃ
NADMIAROWOŚĆ
PRZEKAŻ
INTENCJE
STRUKTURAPOTRZEBNE
NAZWY
http://blog.thecodewhisperer.com/2013/12/07/putting-an-age-old-battle-to-rest/
ABSTRAKCJE
USUŃ
NADMIAROWOŚĆ
PRZEKAŻ
INTENCJE
STRUKTURAPOTRZEBNE
NAZWY
http://blog.thecodewhisperer.com/2013/12/07/putting-an-age-old-battle-to-rest/
ABSTRAKCJE
USUŃ
NADMIAROWOŚĆ
PRZEKAŻ
INTENCJE
STRUKTURA
ABSTRAKCJE
WIDAĆ
NADMIAROWOŚĆ
NA WYŻSZYM
POZIOMIE
http://blog.thecodewhisperer.com/2013/12/07/putting-an-age-old-battle-to-rest/
POTRZEBNE
NAZWY
USUŃ
NADMIAROWOŚĆ
PRZEKAŻ
INTENCJE
STRUKTURA
ABSTRAKCJE
WIDAĆ
NADMIAROWOŚĆ
NA WYŻSZYM
POZIOMIE
http://blog.thecodewhisperer.com/2013/12/07/putting-an-age-old-battle-to-rest/
POTRZEBNE
NAZWY
WSZYSTKIE TESTY PRZECHODZĄ
PRZEKAZANA INTENCJA
BRAK NADMIAROWOŚCI
MINIMALNA LICZBA KLAS I METOD
LogLevel
LogFileName
InfoLog
+ AddInfo(string message)
ErrorLog
+ AddError(string message)
LogLevel
LogFileName
InfoLog
+ AddInfo(string message)
ErrorLog
+ AddError(string message)
Log
+ AddDebug(string message)
+ AddError(string message)
LogLevel
LogFileName
Log
+ AddDebug(string message)
+ AddError(string message)
authentication.SetLogin(login);
authentication.SetPassword(password);
authentication.LogIn();
authentication.LogInWith(credentials);
ZASADY SHALLOWAYA
PAGE 108
WSZYSTKIE TESTY PRZECHODZĄ
PRZEKAZANA INTENCJA
BRAK NADMIAROWOŚCI
MINIMALNA LICZBA KLAS I METOD
WSZYSTKIE TESTY PRZECHODZĄ
MAKSYMALNA SPÓJNOŚĆ
BRAK NADMIAROWOŚCI
MINIMALNE POWIĄZANIA
WSZYSTKIE TESTY PRZECHODZĄ
MAKSYMALNA SPÓJNOŚĆ
BRAK NADMIAROWOŚCI
MINIMALNE POWIĄZANIA
STAN 1
STAN 2
Foo1(), Foo2()
Bar1(), Bar2()
STAN 1
STAN 2
Bar1(), Bar2()
Foo1(), Foo2()
WSZYSTKIE TESTY PRZECHODZĄ
MAKSYMALNA SPÓJNOŚĆ
BRAK NADMIAROWOŚCI
MINIMALNE POWIĄZANIA
STAN 1
Foo1(), Foo2()
STAN 2
Bar1(), Bar2()
BA
BA
BA
PAGE 119
NIE MA SYSTEMU BEZ POWIĄZAŃ
ZBYT MOCNE
TRUDNO ROZDZIELIĆ KLASY
DUŻY WPŁYW MAŁYCH ZMIAN
F
A E
C
ZBYT LEKKIE
SŁABSZA CZYTELNOŚĆ
F
A E
C
PRZYPADKOWE
KOD PSUJE SIĘ W NIEOCZEKIWANYCH MIEJSCACH
b.GetC().GetD().DoSomething()
DCB
A
ZE ZBYT WIELOMA KLASAMI
TRUDNE DO OGARNIĘCIA
MAŁA STABILNOŚĆ
D F
B
A E
C
WSZYSTKIE TESTY PRZECHODZĄ
PRZEKAZANA INTENCJA
BRAK NADMIAROWOŚCI
MINIMALNA LICZBA KLAS I METOD
WSZYSTKIE TESTY PRZECHODZĄ
MAKSYMALNA SPÓJNOŚĆ
BRAK NADMIAROWOŚCI
MINIMALNE POWIĄZANIA
proste!
proste!
proste!
proste!
proste!
proste!
proste!
proste!
proste!
proste!
proste!
proste!
It is okay to want something that
is "stupidly simple" but not at the
expense of being simply stupid!
Brad Appleton
MOTOROLA, MOTO, MOTOROLA SOLUTIONS and the Stylized M Logo are trademarks or registered trademarks of Motorola Trademark Holdings, LLC
and are used under license. All other trademarks are the property of their respective owners. © 2010 Motorola, Inc. All rights reserved.
iProtect Classification: Public

More Related Content

Viewers also liked

[QE 2017] Zbigniew Moćkun - Metryki i raporty jakościowe, czyli tam i z powrotem
[QE 2017] Zbigniew Moćkun - Metryki i raporty jakościowe, czyli tam i z powrotem[QE 2017] Zbigniew Moćkun - Metryki i raporty jakościowe, czyli tam i z powrotem
[QE 2017] Zbigniew Moćkun - Metryki i raporty jakościowe, czyli tam i z powrotemFuture Processing
 
[QE 2017] Michał Stryjak - Startupowy chleb powszedni
[QE 2017] Michał Stryjak - Startupowy chleb powszedni[QE 2017] Michał Stryjak - Startupowy chleb powszedni
[QE 2017] Michał Stryjak - Startupowy chleb powszedniFuture Processing
 
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...Future Processing
 
[QE 2017] Dawid Pacia, Tomasz Janiszewski - SQA w erze TestOps
[QE 2017] Dawid Pacia, Tomasz Janiszewski - SQA w erze TestOps[QE 2017] Dawid Pacia, Tomasz Janiszewski - SQA w erze TestOps
[QE 2017] Dawid Pacia, Tomasz Janiszewski - SQA w erze TestOpsFuture Processing
 
[QE 2017] Arnika Hryszko - Błędy znalezione przypadkiem - o znaczeniu testów ...
[QE 2017] Arnika Hryszko - Błędy znalezione przypadkiem - o znaczeniu testów ...[QE 2017] Arnika Hryszko - Błędy znalezione przypadkiem - o znaczeniu testów ...
[QE 2017] Arnika Hryszko - Błędy znalezione przypadkiem - o znaczeniu testów ...Future Processing
 
[Quality Meetup#12] W. Gawroński - Dlaczego docker@localhost to nie DevOps?
[Quality Meetup#12] W. Gawroński - Dlaczego docker@localhost to nie DevOps?[Quality Meetup#12] W. Gawroński - Dlaczego docker@localhost to nie DevOps?
[Quality Meetup#12] W. Gawroński - Dlaczego docker@localhost to nie DevOps?Future Processing
 
[QE 2017] Michał Buczko - DevTest Pairing w DevOps
[QE 2017] Michał Buczko - DevTest Pairing w DevOps[QE 2017] Michał Buczko - DevTest Pairing w DevOps
[QE 2017] Michał Buczko - DevTest Pairing w DevOpsFuture Processing
 
[QE 2017] Joanna Jeziorska - Szybki i wściekły czy skrupulatny i opanowany — ...
[QE 2017] Joanna Jeziorska - Szybki i wściekły czy skrupulatny i opanowany — ...[QE 2017] Joanna Jeziorska - Szybki i wściekły czy skrupulatny i opanowany — ...
[QE 2017] Joanna Jeziorska - Szybki i wściekły czy skrupulatny i opanowany — ...Future Processing
 
[QE 2017] Monika Januszek, Michał Drzewiecki, Tomasz Lepiorz - Agile'owi pogr...
[QE 2017] Monika Januszek, Michał Drzewiecki, Tomasz Lepiorz - Agile'owi pogr...[QE 2017] Monika Januszek, Michał Drzewiecki, Tomasz Lepiorz - Agile'owi pogr...
[QE 2017] Monika Januszek, Michał Drzewiecki, Tomasz Lepiorz - Agile'owi pogr...Future Processing
 
[QE 2017] Piotr Marczydło - Wdrażanie na wulkanie, czyli CI w świecie, który ...
[QE 2017] Piotr Marczydło - Wdrażanie na wulkanie, czyli CI w świecie, który ...[QE 2017] Piotr Marczydło - Wdrażanie na wulkanie, czyli CI w świecie, który ...
[QE 2017] Piotr Marczydło - Wdrażanie na wulkanie, czyli CI w świecie, który ...Future Processing
 
[QE 2017] Daniel Pokusa - Architektura, która ewoluuje
[QE 2017] Daniel Pokusa - Architektura, która ewoluuje[QE 2017] Daniel Pokusa - Architektura, która ewoluuje
[QE 2017] Daniel Pokusa - Architektura, która ewoluujeFuture Processing
 
[QE 2017] Adrian Gonciarz - Tester w Kontenerze, czyli jak Docker może pomóc ...
[QE 2017] Adrian Gonciarz - Tester w Kontenerze, czyli jak Docker może pomóc ...[QE 2017] Adrian Gonciarz - Tester w Kontenerze, czyli jak Docker może pomóc ...
[QE 2017] Adrian Gonciarz - Tester w Kontenerze, czyli jak Docker może pomóc ...Future Processing
 
[Quality Meetup #13] Piotr Marczydło - Gdy testy to za mało – Continuous Moni...
[Quality Meetup #13] Piotr Marczydło - Gdy testy to za mało – Continuous Moni...[Quality Meetup #13] Piotr Marczydło - Gdy testy to za mało – Continuous Moni...
[Quality Meetup #13] Piotr Marczydło - Gdy testy to za mało – Continuous Moni...Future Processing
 
Identifying and Managing Technical Debt
Identifying and Managing Technical DebtIdentifying and Managing Technical Debt
Identifying and Managing Technical Debtzazworka
 

Viewers also liked (14)

[QE 2017] Zbigniew Moćkun - Metryki i raporty jakościowe, czyli tam i z powrotem
[QE 2017] Zbigniew Moćkun - Metryki i raporty jakościowe, czyli tam i z powrotem[QE 2017] Zbigniew Moćkun - Metryki i raporty jakościowe, czyli tam i z powrotem
[QE 2017] Zbigniew Moćkun - Metryki i raporty jakościowe, czyli tam i z powrotem
 
[QE 2017] Michał Stryjak - Startupowy chleb powszedni
[QE 2017] Michał Stryjak - Startupowy chleb powszedni[QE 2017] Michał Stryjak - Startupowy chleb powszedni
[QE 2017] Michał Stryjak - Startupowy chleb powszedni
 
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...
 
[QE 2017] Dawid Pacia, Tomasz Janiszewski - SQA w erze TestOps
[QE 2017] Dawid Pacia, Tomasz Janiszewski - SQA w erze TestOps[QE 2017] Dawid Pacia, Tomasz Janiszewski - SQA w erze TestOps
[QE 2017] Dawid Pacia, Tomasz Janiszewski - SQA w erze TestOps
 
[QE 2017] Arnika Hryszko - Błędy znalezione przypadkiem - o znaczeniu testów ...
[QE 2017] Arnika Hryszko - Błędy znalezione przypadkiem - o znaczeniu testów ...[QE 2017] Arnika Hryszko - Błędy znalezione przypadkiem - o znaczeniu testów ...
[QE 2017] Arnika Hryszko - Błędy znalezione przypadkiem - o znaczeniu testów ...
 
[Quality Meetup#12] W. Gawroński - Dlaczego docker@localhost to nie DevOps?
[Quality Meetup#12] W. Gawroński - Dlaczego docker@localhost to nie DevOps?[Quality Meetup#12] W. Gawroński - Dlaczego docker@localhost to nie DevOps?
[Quality Meetup#12] W. Gawroński - Dlaczego docker@localhost to nie DevOps?
 
[QE 2017] Michał Buczko - DevTest Pairing w DevOps
[QE 2017] Michał Buczko - DevTest Pairing w DevOps[QE 2017] Michał Buczko - DevTest Pairing w DevOps
[QE 2017] Michał Buczko - DevTest Pairing w DevOps
 
[QE 2017] Joanna Jeziorska - Szybki i wściekły czy skrupulatny i opanowany — ...
[QE 2017] Joanna Jeziorska - Szybki i wściekły czy skrupulatny i opanowany — ...[QE 2017] Joanna Jeziorska - Szybki i wściekły czy skrupulatny i opanowany — ...
[QE 2017] Joanna Jeziorska - Szybki i wściekły czy skrupulatny i opanowany — ...
 
[QE 2017] Monika Januszek, Michał Drzewiecki, Tomasz Lepiorz - Agile'owi pogr...
[QE 2017] Monika Januszek, Michał Drzewiecki, Tomasz Lepiorz - Agile'owi pogr...[QE 2017] Monika Januszek, Michał Drzewiecki, Tomasz Lepiorz - Agile'owi pogr...
[QE 2017] Monika Januszek, Michał Drzewiecki, Tomasz Lepiorz - Agile'owi pogr...
 
[QE 2017] Piotr Marczydło - Wdrażanie na wulkanie, czyli CI w świecie, który ...
[QE 2017] Piotr Marczydło - Wdrażanie na wulkanie, czyli CI w świecie, który ...[QE 2017] Piotr Marczydło - Wdrażanie na wulkanie, czyli CI w świecie, który ...
[QE 2017] Piotr Marczydło - Wdrażanie na wulkanie, czyli CI w świecie, który ...
 
[QE 2017] Daniel Pokusa - Architektura, która ewoluuje
[QE 2017] Daniel Pokusa - Architektura, która ewoluuje[QE 2017] Daniel Pokusa - Architektura, która ewoluuje
[QE 2017] Daniel Pokusa - Architektura, która ewoluuje
 
[QE 2017] Adrian Gonciarz - Tester w Kontenerze, czyli jak Docker może pomóc ...
[QE 2017] Adrian Gonciarz - Tester w Kontenerze, czyli jak Docker może pomóc ...[QE 2017] Adrian Gonciarz - Tester w Kontenerze, czyli jak Docker może pomóc ...
[QE 2017] Adrian Gonciarz - Tester w Kontenerze, czyli jak Docker może pomóc ...
 
[Quality Meetup #13] Piotr Marczydło - Gdy testy to za mało – Continuous Moni...
[Quality Meetup #13] Piotr Marczydło - Gdy testy to za mało – Continuous Moni...[Quality Meetup #13] Piotr Marczydło - Gdy testy to za mało – Continuous Moni...
[Quality Meetup #13] Piotr Marczydło - Gdy testy to za mało – Continuous Moni...
 
Identifying and Managing Technical Debt
Identifying and Managing Technical DebtIdentifying and Managing Technical Debt
Identifying and Managing Technical Debt
 

Similar to [QE 2017] Grzegorz Galezowski - Prostota nie jest łatwa

Questions has 4 parts.1st part Program to implement sorting algor.pdf
Questions has 4 parts.1st part Program to implement sorting algor.pdfQuestions has 4 parts.1st part Program to implement sorting algor.pdf
Questions has 4 parts.1st part Program to implement sorting algor.pdfapexelectronices01
 
JBUG 11 - Scala For Java Programmers
JBUG 11 - Scala For Java ProgrammersJBUG 11 - Scala For Java Programmers
JBUG 11 - Scala For Java ProgrammersTikal Knowledge
 
Kotlin, Spek and tests
Kotlin, Spek and testsKotlin, Spek and tests
Kotlin, Spek and testsintive
 
Hitchhiker's Guide to Functional Programming
Hitchhiker's Guide to Functional ProgrammingHitchhiker's Guide to Functional Programming
Hitchhiker's Guide to Functional ProgrammingSergey Shishkin
 
Implement the Queue ADT using array – based approach. Using C++ prog.pdf
Implement the Queue ADT using array – based approach. Using C++ prog.pdfImplement the Queue ADT using array – based approach. Using C++ prog.pdf
Implement the Queue ADT using array – based approach. Using C++ prog.pdfsktambifortune
 
ApacheCon 2000 Everything you ever wanted to know about XML Parsing
ApacheCon 2000 Everything you ever wanted to know about XML ParsingApacheCon 2000 Everything you ever wanted to know about XML Parsing
ApacheCon 2000 Everything you ever wanted to know about XML ParsingTed Leung
 
망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19종인 전
 
User Defined Aggregation in Apache Spark: A Love Story
User Defined Aggregation in Apache Spark: A Love StoryUser Defined Aggregation in Apache Spark: A Love Story
User Defined Aggregation in Apache Spark: A Love StoryDatabricks
 
User Defined Aggregation in Apache Spark: A Love Story
User Defined Aggregation in Apache Spark: A Love StoryUser Defined Aggregation in Apache Spark: A Love Story
User Defined Aggregation in Apache Spark: A Love StoryDatabricks
 
A scrupulous code review - 15 bugs in C++ code
A scrupulous code review - 15 bugs in C++ codeA scrupulous code review - 15 bugs in C++ code
A scrupulous code review - 15 bugs in C++ codePVS-Studio LLC
 
Rewriting Java In Scala
Rewriting Java In ScalaRewriting Java In Scala
Rewriting Java In ScalaSkills Matter
 
Using Arbor/ RGraph JS libaries for Data Visualisation
Using Arbor/ RGraph JS libaries for Data VisualisationUsing Arbor/ RGraph JS libaries for Data Visualisation
Using Arbor/ RGraph JS libaries for Data VisualisationAlex Hardman
 
So I have this code(StackInAllSocks) and I implemented the method but.pdf
So I have this code(StackInAllSocks) and I implemented the method but.pdfSo I have this code(StackInAllSocks) and I implemented the method but.pdf
So I have this code(StackInAllSocks) and I implemented the method but.pdfaksahnan
 
MCE^3 - Hannes Verlinde - Let The Symbols Do The Work
MCE^3 - Hannes Verlinde - Let The Symbols Do The WorkMCE^3 - Hannes Verlinde - Let The Symbols Do The Work
MCE^3 - Hannes Verlinde - Let The Symbols Do The WorkPROIDEA
 
1.2 Scala Basics
1.2 Scala Basics1.2 Scala Basics
1.2 Scala Basicsretronym
 

Similar to [QE 2017] Grzegorz Galezowski - Prostota nie jest łatwa (20)

Questions has 4 parts.1st part Program to implement sorting algor.pdf
Questions has 4 parts.1st part Program to implement sorting algor.pdfQuestions has 4 parts.1st part Program to implement sorting algor.pdf
Questions has 4 parts.1st part Program to implement sorting algor.pdf
 
Scala 2 + 2 > 4
Scala 2 + 2 > 4Scala 2 + 2 > 4
Scala 2 + 2 > 4
 
JBUG 11 - Scala For Java Programmers
JBUG 11 - Scala For Java ProgrammersJBUG 11 - Scala For Java Programmers
JBUG 11 - Scala For Java Programmers
 
Scala introduction
Scala introductionScala introduction
Scala introduction
 
Kotlin, Spek and tests
Kotlin, Spek and testsKotlin, Spek and tests
Kotlin, Spek and tests
 
Hitchhiker's Guide to Functional Programming
Hitchhiker's Guide to Functional ProgrammingHitchhiker's Guide to Functional Programming
Hitchhiker's Guide to Functional Programming
 
Implement the Queue ADT using array – based approach. Using C++ prog.pdf
Implement the Queue ADT using array – based approach. Using C++ prog.pdfImplement the Queue ADT using array – based approach. Using C++ prog.pdf
Implement the Queue ADT using array – based approach. Using C++ prog.pdf
 
SDC - Einführung in Scala
SDC - Einführung in ScalaSDC - Einführung in Scala
SDC - Einführung in Scala
 
webScrapingFunctions
webScrapingFunctionswebScrapingFunctions
webScrapingFunctions
 
ApacheCon 2000 Everything you ever wanted to know about XML Parsing
ApacheCon 2000 Everything you ever wanted to know about XML ParsingApacheCon 2000 Everything you ever wanted to know about XML Parsing
ApacheCon 2000 Everything you ever wanted to know about XML Parsing
 
망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19
 
User Defined Aggregation in Apache Spark: A Love Story
User Defined Aggregation in Apache Spark: A Love StoryUser Defined Aggregation in Apache Spark: A Love Story
User Defined Aggregation in Apache Spark: A Love Story
 
User Defined Aggregation in Apache Spark: A Love Story
User Defined Aggregation in Apache Spark: A Love StoryUser Defined Aggregation in Apache Spark: A Love Story
User Defined Aggregation in Apache Spark: A Love Story
 
A scrupulous code review - 15 bugs in C++ code
A scrupulous code review - 15 bugs in C++ codeA scrupulous code review - 15 bugs in C++ code
A scrupulous code review - 15 bugs in C++ code
 
WOTC_Import
WOTC_ImportWOTC_Import
WOTC_Import
 
Rewriting Java In Scala
Rewriting Java In ScalaRewriting Java In Scala
Rewriting Java In Scala
 
Using Arbor/ RGraph JS libaries for Data Visualisation
Using Arbor/ RGraph JS libaries for Data VisualisationUsing Arbor/ RGraph JS libaries for Data Visualisation
Using Arbor/ RGraph JS libaries for Data Visualisation
 
So I have this code(StackInAllSocks) and I implemented the method but.pdf
So I have this code(StackInAllSocks) and I implemented the method but.pdfSo I have this code(StackInAllSocks) and I implemented the method but.pdf
So I have this code(StackInAllSocks) and I implemented the method but.pdf
 
MCE^3 - Hannes Verlinde - Let The Symbols Do The Work
MCE^3 - Hannes Verlinde - Let The Symbols Do The WorkMCE^3 - Hannes Verlinde - Let The Symbols Do The Work
MCE^3 - Hannes Verlinde - Let The Symbols Do The Work
 
1.2 Scala Basics
1.2 Scala Basics1.2 Scala Basics
1.2 Scala Basics
 

More from Future Processing

DPTO_Inżynieria oprogramowania to proces uczenia się.pdf
DPTO_Inżynieria oprogramowania to proces uczenia się.pdfDPTO_Inżynieria oprogramowania to proces uczenia się.pdf
DPTO_Inżynieria oprogramowania to proces uczenia się.pdfFuture Processing
 
DPTO_QA w świecie wartości biznesowych.pdf
DPTO_QA w świecie wartości biznesowych.pdfDPTO_QA w świecie wartości biznesowych.pdf
DPTO_QA w świecie wartości biznesowych.pdfFuture Processing
 
DPTO_Hello_Clean_Architekture.pdf
DPTO_Hello_Clean_Architekture.pdfDPTO_Hello_Clean_Architekture.pdf
DPTO_Hello_Clean_Architekture.pdfFuture Processing
 
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurzeFuture Processing
 
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shakeFuture Processing
 
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myśleniaFuture Processing
 
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletkaFuture Processing
 
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...Future Processing
 
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...Future Processing
 
[FDD 2018] Lech Kalinowski - Prywatny Blockchain
[FDD 2018] Lech Kalinowski - Prywatny Blockchain[FDD 2018] Lech Kalinowski - Prywatny Blockchain
[FDD 2018] Lech Kalinowski - Prywatny BlockchainFuture Processing
 
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈XFuture Processing
 
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...Future Processing
 
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...Future Processing
 
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NETFuture Processing
 
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...Future Processing
 
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...Future Processing
 
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark ApplicationsFuture Processing
 
[QE 2018] Marek Puchalski – Web Application Security Test Automation
[QE 2018] Marek Puchalski – Web Application Security Test Automation[QE 2018] Marek Puchalski – Web Application Security Test Automation
[QE 2018] Marek Puchalski – Web Application Security Test AutomationFuture Processing
 
[QE 2018] Rob Lambert – How to Thrive as a Software Tester
[QE 2018] Rob Lambert – How to Thrive as a Software Tester[QE 2018] Rob Lambert – How to Thrive as a Software Tester
[QE 2018] Rob Lambert – How to Thrive as a Software TesterFuture Processing
 
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOpsFuture Processing
 

More from Future Processing (20)

DPTO_Inżynieria oprogramowania to proces uczenia się.pdf
DPTO_Inżynieria oprogramowania to proces uczenia się.pdfDPTO_Inżynieria oprogramowania to proces uczenia się.pdf
DPTO_Inżynieria oprogramowania to proces uczenia się.pdf
 
DPTO_QA w świecie wartości biznesowych.pdf
DPTO_QA w świecie wartości biznesowych.pdfDPTO_QA w świecie wartości biznesowych.pdf
DPTO_QA w świecie wartości biznesowych.pdf
 
DPTO_Hello_Clean_Architekture.pdf
DPTO_Hello_Clean_Architekture.pdfDPTO_Hello_Clean_Architekture.pdf
DPTO_Hello_Clean_Architekture.pdf
 
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
 
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
 
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
 
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
 
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
 
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
 
[FDD 2018] Lech Kalinowski - Prywatny Blockchain
[FDD 2018] Lech Kalinowski - Prywatny Blockchain[FDD 2018] Lech Kalinowski - Prywatny Blockchain
[FDD 2018] Lech Kalinowski - Prywatny Blockchain
 
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
 
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
 
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
 
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
 
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
 
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
 
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
 
[QE 2018] Marek Puchalski – Web Application Security Test Automation
[QE 2018] Marek Puchalski – Web Application Security Test Automation[QE 2018] Marek Puchalski – Web Application Security Test Automation
[QE 2018] Marek Puchalski – Web Application Security Test Automation
 
[QE 2018] Rob Lambert – How to Thrive as a Software Tester
[QE 2018] Rob Lambert – How to Thrive as a Software Tester[QE 2018] Rob Lambert – How to Thrive as a Software Tester
[QE 2018] Rob Lambert – How to Thrive as a Software Tester
 
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
 

Recently uploaded

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 

Recently uploaded (20)

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 

[QE 2017] Grzegorz Galezowski - Prostota nie jest łatwa

Editor's Notes

  1. Title Page Option 3 Solid-colored Background Date/location information is Arial16pt. Headline copy is Arial Bold 54pt in all caps. Use Paragraph Line Spacing Multiple of 0.8 with 0pt spacing before and after. Presenter information is Arial Bold 18pt in all caps. The Paragraph Line Spacing is Exactly 0.9pt with 0pt spacing before and after. Background can be changed to any color is white.
  2. CHRISTOPHER S PENN: SIMPLE IS NOT EASY
  3. FROM CHRISTOPHER S PENN: SIMPLE IS NOT EASY
  4. Presumptive features
  5. FROM CHRISTOPHER S PENN: SIMPLE IS NOT EASY
  6. FROM CHRISTOPHER S PENN: SIMPLE IS NOT EASY
  7. Harder to debug, test etc.
  8. FROM CHRISTOPHER S PENN: SIMPLE IS NOT EASY
  9. For two-line slide titles, use Paragraph Line Spacing Multiple of 0.8 with 0pt spacing before and after.
  10. For two-line slide titles, use Paragraph Line Spacing Multiple of 0.8 with 0pt spacing before and after.
  11. FROM CHRISTOPHER S PENN: SIMPLE IS NOT EASY
  12. FROM CHRISTOPHER S PENN: SIMPLE IS NOT EASY
  13. DIRECT ACCESS TO EVERYTHING IF THIS IS A SINGLE METHOD
  14. DIRECT ACCESS TO EVERYTHING IF THIS IS A SINGLE METHOD
  15. DIRECT ACCESS TO EVERYTHING IF THIS IS A SINGLE METHOD
  16. DIRECT ACCESS TO EVERYTHING IF THIS IS A SINGLE METHOD
  17. DIRECT ACCESS TO EVERYTHING IF THIS IS A SINGLE METHOD
  18. Wskazówkę daje nam Prawo Shallowaya – te typy nadmiarowości, do których to prawo ma zastosowanie to to, którego chcemy uniknąć, czyli...
  19. Wskazówkę daje nam Prawo Shallowaya – te typy nadmiarowości, do których to prawo ma zastosowanie to to, którego chcemy uniknąć, czyli...
  20. CHRISTOPHER S PENN: SIMPLE IS NOT EASY
  21. CHRISTOPHER S PENN: SIMPLE IS NOT EASY
  22. ZOBACZCIE DEFINICJĘ SYSTEMU NA WIKIPEDII
  23. HARD TO SEPARATE – STATIC, SINGLETON ACCIDENTAL – GLOBAL FLAGS
  24. HARD TO SEPARATE – STATIC, SINGLETON ACCIDENTAL – GLOBAL FLAGS
  25. HARD TO SEPARATE – STATIC, SINGLETON ACCIDENTAL – GLOBAL FLAGS
  26. HARD TO SEPARATE – STATIC, SINGLETON ACCIDENTAL – GLOBAL FLAGS
  27. Thank you or Q&A wrap up slide example. Font arial 80pt. Legal disclaimer bottom of page arial 8pt font with I Protect
  28. Thank you or Q&A wrap up slide example. Font arial 80pt. Legal disclaimer bottom of page arial 8pt font with I Protect