diff --git a/slides/summary_full.html b/slides/summary_full.html new file mode 100644 index 0000000..677250d --- /dev/null +++ b/slides/summary_full.html @@ -0,0 +1,2684 @@ + + +
+ + + +Gergő Pintér, PhD
+gergo.pinter@uni-corvinus.hu
+based on Making +sense of MVP (Minimum Viable Product) by Henrik Kniberg
+as a [type of user]
, I want to
+[action/function]
in order to
+[benefit/value]
Title (one line describing the story)
+
+Narrative:
+As a [role]
+I want [feature]
+So that [benefit]
+
+Acceptance Criteria:
+(presented as Scenarios)
+
+Scenario 1: Title
+Given [context]
+ And [some more context]...
+When [event]
+Then [outcome]
+ And [another outcome]...
+
+Scenario 2: ...
+more from Jeff Patton: 5 story +mapping mistakes
+source: [3]
+shows user flow, ~ user story map flow
+based on: [3]
+read about the design patterns in details, for example at refactoring.guru
+OO pattern | +FP pattern | +
---|---|
factory pattern | +function | +
strategy pattern | +function | +
decorator pattern | +function | +
visitor pattern | +function | +
… | +… | +
Peter Norvig demonstrated that 16 +out of the 23 patterns are simplified or eliminated by language features +in Lisp or Dylan (1998) [7]
+more +about it from Scott Wlaschin [8]
+SOLID is a mnemonic acronym for five +design principles intended to make object-oriented designs more +understandable, flexible, and maintainable [9]
+based on [10], [11]
+source Wikipedia +[12]
+ASP.NET, Django (Python), Ruby on Rails, Laravel (PHP)
+Windows Forms, Java Swing
+WPF, AngularJS
+https://developers.facebook.com/v21.0/me?fields=id,name
based on What is an +implementation plan? 6 steps to create one [13]
+a risk is a possibility that something bad can happen
+based on riskstorming.com | +CC BY 4.0
+based on riskstorming.com | +CC BY 4.0
+Risk | +Impact (1-3) |
+Likelihood (0-10) |
+Risk (I * L) |
+Mitigation | +
---|---|---|---|---|
Rust Language Changes | +2 | +7 | +14 | +Target a specific Rustc version | +
Missing GCC 13 upstream window | +1 | +6 | +6 | +Merge in GCC 14 and be proactive about reviews | +
at the end of a sprint planning, every task in the sprint backlog +should have an assignee
+source: [14]
+“Story points reward team members for solving problems based on +difficulty, not time spent. This keeps team members focused on shipping +value, not spending time [15].”
+++a code smell is a surface indication that usually corresponds to a +deeper problem
+– Martin Flower [16]
+
software rot is the degradation, deterioration, or loss of the use or +performance of software over time [17]
+requirement smell: signs in the requirements that +are not necessarily wrong but could be problematic [18]
+source: [19], [20]
+it is hard to objectively measure the quality of code
+defined as:
+ +activity diagram
+control flow
++ +
+def query_progress(user_id:int) -> float:
+ # establish connection
+ con= sqlite3.connect("data.db")
+ # build query
+ progress_query = f"""
+ SELECT
+ lesson / 50.0 AS progress
+ FROM activity
+ WHERE
+ user_id = {user_id} AND
+ result = 'success'
+ ORDER BY
+ lesson DESC
+ LIMIT 1
+ ;
+ """
+ # execute query
+ res =con.execute(progress_query)
+ progress=res.fetchone()[0]
+ return progress
every work product can and should be reviewed
+type | +formality | +led by | +effort | +documentation | +
---|---|---|---|---|
informal | +not formal | +noone | +minimal | +undocumented | +
walkthrough | +not formal1 | +authors | +very low | +normal, fault-finding | +
technical | +less formal | +trained moderator, not the author | +moderate | +more detailed | +
inspection | +most formal | +trained moderator | +high | +thorough; based on standards, +checklists | +
source: Code Review +Guidelines for Humans [22]
+source: Code Review +Guidelines for Humans [22]
+the turtle and rabbit figures by Delapouite under CC BY 3.0 via game-icons.net
+a unit test is another piece of code, that tests the given unit
+parts of a unit test
+there is no open standard for categories
+these are from the book xUnit test patterns: Refactoring test +code – by Gerard Meszaros [25]
+++ +As the tests get more specific, the code gets more generic.
+– Robert C. Martin, The +Cycles of TDD [26]
+
code/fizzbuzz.py
code/test_fizzbuzz.py
test coverage: 70%
+test coverage: 90%
+test coverage: 100%
+four control flow branch, all of them needs to be tested
+it is hard to objectively measure the quality of code
+def calculate_progress(
+ finished: int,
+ total: int,
+ as_percentage: bool,
+) -> float:
+ progress = finished / total
+
+ if as_percentage:
+ return progress * 100
+ else:
+ return progress
this function need some value checking
+test coverage only measures that every control flow branch is +tested
+the point of testing is testing for the edge cases
++ | add feature | +fix a bug | +refactor | +optimize | +
---|---|---|---|---|
structure | +changes | +changes | +changes | ++ |
new funcionality | +changes | ++ | + | + |
functionality | ++ | changes | ++ | + |
resource usage | ++ | + | + | changes | +
Michael Feathers, Working Effectively with Legacy Code: part 1 pp 6 +[27]
+black box
+ +white box
+ +Sometimes it can be somewhat formal.↩︎
Gergő Pintér, PhD
+gergo.pinter@uni-corvinus.hu
+source: [1]
+shows user flow, ~ user story map flow
+based on: [1]
+