SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
Programming
    Exercises



12年6月5日星期二
Who am I?




             尹哲:terry@odd-e.com twitter: terryyin weibo: terry尹哲   2

12年6月5日星期二
Programming
    Exercises



12年6月5日星期二
Why Programming Exercises?




                              4

12年6月5日星期二
5

12年6月5日星期二
Question

             Does software company need to
                   train programmers?




                                             6

12年6月5日星期二
Leonhard Euler         Dojo




                         vs.




                                      7

12年6月5日星期二
What is ProjectEuler.net?




                                8

12年6月5日星期二
ProjectEuler.net
        "Project Euler exists to encourage, challenge, and develop the skills and enjoyment of anyone with
        an interest in the fascinating world of mathematics."




             • Project Euler is a series of challenging mathematical/computer
               programming problems that requires more than just mathematical
               insights to solve.




                                                                                                             9

12年6月5日星期二
ProjectEuler.net




                          10

12年6月5日星期二
ProjectEuler.net




                          11

12年6月5日星期二
Expectations


             Mathematics
             So lution implementing
             Hig h perfor mance co d ing

              So lving problem
             ind ivi dually




                                           12

12年6月5日星期二
Example: Quick & Dirty

       Once you solved a problem, you are entitled to join the forum for this problem.You can
       share your solution with the other people who have also solved it. And the post usually
       start with this sentence:




                                  Good coding habit?


                                                                                                 13

12年6月5日星期二
Another Example




                               14

12年6月5日星期二
int i, j, k, n, sum;
                                int factorial[10000];

                                int* getfactorial(int n)
                                {
                                    factorial[0] = 1;
                                    k = 0;
                                    for(i = 2; i <= n; i++)
                                    {
  • It’s too simple for                 for(j = 0; j <= k; j++)
                                            factorial[j] *= i;
      Java, Ruby or Python,             for(j = 0; j <= k; j++)
      for which they can                {
                                            if(factorial[j] >= 10)
      handle big numbers by                 {
                                                factorial[j+1] += (factorial[j] - (factorial[j] % 10)) / 10;
      default.                                  factorial[j] = factorial[j] % 10;

  •   So let’s look at C/C++.                   if(j == k)
                                                    k++;

  •   Real code copied from             }
                                            }

      the forum.                    }
                                    return factorial;
                                }

                                int getsum(int* array, int k)
                                {
                                    sum = 0;
                                    for(i = 0; i <= k; i++)
                                        sum += array[i];
                                    return sum;
                                }

                                int main()
                                {
                                    int* factorial = getfactorial(n);
                                    sum = getsum(factorial, k);
                                    cout << "nThe sum of the digits of " << n << "! is " << sum << ".n";
                                    return 0;
                                }                                                                       15

12年6月5日星期二
16

12年6月5日星期二
Big number again. Ha ha, I did that
                  before! Let me reuse it...




                                                   17

12年6月5日星期二
#include<iostream>

  using namespace std;

  int i, j, k, n, sum;
  int factorial[10000];
                            Why the big number is named ‘factorial’
  int* getfactorial(int n)
  {                           in my previous implementation?
      factorial[0] = 1;
      k = 0;
      for(i = 2; i <= n; i++)
      {
          for(j = 0; j <= k; j++)
              factorial[j] *= i;
          for(j = 0; j <= k; j++)
                                         Where’s the code for big number?
          {
              if(factorial[j] >= 10)
              {
                  factorial[j+1] += (factorial[j] - (factorial[j] % 10)) / 10;
                  factorial[j] = factorial[j] % 10;
                  if(j == k)
                      k++;
              }
          }
      }
      return factorial;
  }
                                                                                 18

12年6月5日星期二
#include <stdio.h>

                                             #define NUMB 120              // 9 * 120 = 1080 total digits.
                                             #define SIZE 1000000000       // 9 digit numbers

                                             int main() {
                                               int i = 0;
                                               int j = 0;
                                               int bigNum1[NUMB];
                                               int bigNum2[NUMB];
                                               int bigNum3[NUMB];
                                               int counter = 0;

                                                 for (i = 0;   i < NUMB; i++) {
                                                   bigNum1 =   0;
                                                   bigNum2 =   0;
                                                   bigNum3 =   0;
                                                 }

                                                 bigNum1[0] = 1;
        OK, too hard to reuse. It’s not          bigNum2[0] = 1;
                                                 counter = 2;
      that hard to invent the wheel again.       i = 0;

                                                 while (i == 0) {
                                                   counter++;
                                                   for (j = 0; j < NUMB; j++) {
                                                     bigNum3[j] = bigNum2[j] + bigNum1[j];
                                                   }
                                                   for (j = 0; j < NUMB-1; j++) {
                                                     while (bigNum3[j] >= SIZE) {
                                                   bigNum3[j] -= SIZE;
                                                   bigNum3[j+1]++;
                 Design?                           }
                                                     }

                                                   if (bigNum3[111] >= 1)
                                                     break;
                                                   for (j = 0; j < NUMB; j++) {
                                                     bigNum1[j] = bigNum2[j];
                                                     bigNum2[j] = bigNum3[j];
                                                   }
                                                 }

                                                 printf("n");
                                                 printf("P025 answer = %u", counter);
                                             }                                                               19

12年6月5日星期二
ing exercises
         Problem so lv
                           tant skills
       ✓ Train ver y impor
                                  w
                      as inter vie
        ✓Often use d
          ques tions
                             i n skills in
         ✓ Probab ly also tra
                            n able co de,
           maki ng maintai
             a little.




                  •Don’t do it before bed time...   20

12年6月5日星期二
What is Cyber Dojo?



                          21

12年6月5日星期二
22

12年6月5日星期二
23

12年6月5日星期二
24

12年6月5日星期二
RED - GREEN - REFACTOR




                                  25

12年6月5日星期二
26

12年6月5日星期二
27

12年6月5日星期二
28

12年6月5日星期二
Which One Do You Prefer?

                                        29

12年6月5日星期二
Poker Hands


                  30

12年6月5日星期二
Poker Hands Kata




                                31

12年6月5日星期二
Poker Hands in ProjectEuler
             • This is not a very hard problem to solve,
                 comparing to most of the problems listed in
                 ProjectEuler.net
             •   But it’s hard to solve it without bugs if you don’t
                 have unit tests.
             • Problem 54 in projectEuler.net


                                                                       32

12年6月5日星期二
Example: Complicated
                 Transaction




                                    33

12年6月5日星期二
Why Did I Do It Right
             With Only One Try?



                                     34

12年6月5日星期二
TEST(poker_hand, comparing){
                CHECK(pokerHand("4H 5C 6S 7S TD")< pokerHand("2C 3S 7S 8D KD"));
                CHECK(!(pokerHand("4H 5C 6S 7S KD")< pokerHand("2C 3S 7S 8D TD")));
                CHECK(pokerHand("4H 5C 6S 7S KD")> pokerHand("2C 3S 7S 8D TD"));
             }
             TEST(poker_hand, compare_cards){
                CHECK(pokerHand("3H 5C 6S 7S 8D")< pokerHand("4H 5C 6S 7S 9D"));
                CHECK(pokerHand("3H 5C 6S 7S 9D")< pokerHand("4H 5C 6S 7S TD"));
                CHECK(pokerHand("3H 5C 6S 7S TD")< pokerHand("4H 5C 6S 7S JD"));
                CHECK(pokerHand("3H 5C 6S 7S JD")< pokerHand("4H 5C 6S 7S QD"));
                CHECK(pokerHand("3H 5C 6S 7S QD")< pokerHand("4H 5C 6S 7S KD"));
                CHECK(pokerHand("3H 5C 6S 7S KD")< pokerHand("4H 5C 6S 7S AD"));
             }
             TEST(poker_hand, compare_high_cards_2nd){
                CHECK(pokerHand("3H 5C 6S 7S 9D")< pokerHand("3H 5C 6S 8S 9D"));
             }
             TEST(poker_hand, compare_high_cards_3nd_4th_5th){
                CHECK(pokerHand("3H 5C 6S 8S 9D")< pokerHand("3H 5C 7S 8S 9D"));
                CHECK(pokerHand("3H 4C 7S 8S 9D")< pokerHand("3H 5C 7S 8S 9D"));
                CHECK(pokerHand("2H 5C 7S 8S 9D")< pokerHand("3H 5C 7S 8S 9D"));
             }
             TEST(poker_hand, compare_high_card_and_one_pair){
                CHECK(pokerHand("3H 5C 6S 8S 9D")< pokerHand("3H 5C 7S 8S 8D"));
             }
             TEST(poker_hand, compare_one_pairs){
                CHECK(pokerHand("3H 5C 6S 9S 9D")> pokerHand("3H 5C 7S 8S 8D"));
                CHECK(pokerHand("5C 6S 9S 9D KD")> pokerHand("5C 7S 8S 8D AD"));
                CHECK(pokerHand("5C 6S 9S 9D KD")< pokerHand("5C 7S 9S 9D AD"));
             }

             ...


                                                                                      35

12年6月5日星期二
Do both exercises.
             Alone and with the others.
             Always use good practices.
             Have fun.



                                          36

12年6月5日星期二
Discuss



             Training
                               in workshop




                                                 Develop
                                             in concurrence

                            Deliver
                        for acceptance




                                                              37

12年6月5日星期二
Odd-e
             Certified Scrum Developer
             • One week course simulating how it feels to be on a Scrum project
                - Realistic exercise to work on as a team
                - Topics covered: A-TDD, Build Automation, Sprint Planning, Pair
                    Programming, Continuous Integration, Test-Driven Development,
                    Working in teams, Collective Code Ownership, Mocking, Code
                    Smells & Refactoring, Good unit tests,Emergent Design, Working
                    with Legacy Code, Craftsmanship
                -   Maximum 10 people, in Odd-e office
                -   Java and C++ version
                -   Fulfills the ScurmAlliance CSD




                                                 More info at:
                           http://www.odd-e.com/courses.php?id=201205SingaporeCSD    38

12年6月5日星期二
Coaching




                        39

12年6月5日星期二

Mais conteúdo relacionado

Mais procurados

11.on generalized dislocated quasi metrics
11.on generalized dislocated quasi metrics11.on generalized dislocated quasi metrics
11.on generalized dislocated quasi metricsAlexander Decker
 
nips勉強会_Toward Property-Based Classification of Clustering Paradigms
nips勉強会_Toward Property-Based Classification of Clustering Paradigmsnips勉強会_Toward Property-Based Classification of Clustering Paradigms
nips勉強会_Toward Property-Based Classification of Clustering Paradigmstksakaki
 
Chapter 7 functions (c)
Chapter 7 functions (c)Chapter 7 functions (c)
Chapter 7 functions (c)hhliu
 
Machine Learning - What, Where and How
Machine Learning - What, Where and HowMachine Learning - What, Where and How
Machine Learning - What, Where and Hownarinderk
 
Question bank unit ii engineering mathematics ii
Question bank unit ii engineering mathematics iiQuestion bank unit ii engineering mathematics ii
Question bank unit ii engineering mathematics iiShubham Vini
 
Oops lab manual2
Oops lab manual2Oops lab manual2
Oops lab manual2Mouna Guru
 
210502 Mathematical Foundation Of Computer Science
210502 Mathematical Foundation Of Computer Science210502 Mathematical Foundation Of Computer Science
210502 Mathematical Foundation Of Computer Scienceguestd436758
 
Expert Lecture on GPS at UIET, CSJM, Kanpur
Expert Lecture on GPS at UIET, CSJM, KanpurExpert Lecture on GPS at UIET, CSJM, Kanpur
Expert Lecture on GPS at UIET, CSJM, KanpurSuddhasheel GHOSH, PhD
 
11X1 T09 03 second derivative
11X1 T09 03 second derivative11X1 T09 03 second derivative
11X1 T09 03 second derivativeNigel Simmons
 
A Review of Proximal Methods, with a New One
A Review of Proximal Methods, with a New OneA Review of Proximal Methods, with a New One
A Review of Proximal Methods, with a New OneGabriel Peyré
 
Fee managment system
Fee managment systemFee managment system
Fee managment systemfairy9912
 
Global Domination Set in Intuitionistic Fuzzy Graph
Global Domination Set in Intuitionistic Fuzzy GraphGlobal Domination Set in Intuitionistic Fuzzy Graph
Global Domination Set in Intuitionistic Fuzzy Graphijceronline
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)ijceronline
 
Learning Deep Learning
Learning Deep LearningLearning Deep Learning
Learning Deep Learningsimaokasonse
 

Mais procurados (19)

11.on generalized dislocated quasi metrics
11.on generalized dislocated quasi metrics11.on generalized dislocated quasi metrics
11.on generalized dislocated quasi metrics
 
nips勉強会_Toward Property-Based Classification of Clustering Paradigms
nips勉強会_Toward Property-Based Classification of Clustering Paradigmsnips勉強会_Toward Property-Based Classification of Clustering Paradigms
nips勉強会_Toward Property-Based Classification of Clustering Paradigms
 
Chapter 7 functions (c)
Chapter 7 functions (c)Chapter 7 functions (c)
Chapter 7 functions (c)
 
Ecc intro oct 2011
Ecc intro oct 2011Ecc intro oct 2011
Ecc intro oct 2011
 
JavaYDL7
JavaYDL7JavaYDL7
JavaYDL7
 
Machine Learning - What, Where and How
Machine Learning - What, Where and HowMachine Learning - What, Where and How
Machine Learning - What, Where and How
 
Unit 3
Unit 3Unit 3
Unit 3
 
04 maths
04 maths04 maths
04 maths
 
Question bank unit ii engineering mathematics ii
Question bank unit ii engineering mathematics iiQuestion bank unit ii engineering mathematics ii
Question bank unit ii engineering mathematics ii
 
Oops lab manual2
Oops lab manual2Oops lab manual2
Oops lab manual2
 
210502 Mathematical Foundation Of Computer Science
210502 Mathematical Foundation Of Computer Science210502 Mathematical Foundation Of Computer Science
210502 Mathematical Foundation Of Computer Science
 
Expert Lecture on GPS at UIET, CSJM, Kanpur
Expert Lecture on GPS at UIET, CSJM, KanpurExpert Lecture on GPS at UIET, CSJM, Kanpur
Expert Lecture on GPS at UIET, CSJM, Kanpur
 
11X1 T09 03 second derivative
11X1 T09 03 second derivative11X1 T09 03 second derivative
11X1 T09 03 second derivative
 
A Review of Proximal Methods, with a New One
A Review of Proximal Methods, with a New OneA Review of Proximal Methods, with a New One
A Review of Proximal Methods, with a New One
 
Bca
BcaBca
Bca
 
Fee managment system
Fee managment systemFee managment system
Fee managment system
 
Global Domination Set in Intuitionistic Fuzzy Graph
Global Domination Set in Intuitionistic Fuzzy GraphGlobal Domination Set in Intuitionistic Fuzzy Graph
Global Domination Set in Intuitionistic Fuzzy Graph
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 
Learning Deep Learning
Learning Deep LearningLearning Deep Learning
Learning Deep Learning
 

Destaque

Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)LetAgileFly
 
Scrum gathering 2012 shanghai 团队合作与团队指导分会场演讲话题:你的团队什么颜色的(杨瑞)
Scrum gathering 2012 shanghai  团队合作与团队指导分会场演讲话题:你的团队什么颜色的(杨瑞)Scrum gathering 2012 shanghai  团队合作与团队指导分会场演讲话题:你的团队什么颜色的(杨瑞)
Scrum gathering 2012 shanghai 团队合作与团队指导分会场演讲话题:你的团队什么颜色的(杨瑞)LetAgileFly
 
Sponsorship program 2013 regional scrum gathering china
Sponsorship program 2013 regional scrum gathering chinaSponsorship program 2013 regional scrum gathering china
Sponsorship program 2013 regional scrum gathering chinaLetAgileFly
 
Scrum gathering 2012 shanghai 团队合作与团队指导:scrum master 取经路(王庆付)
Scrum gathering 2012 shanghai 团队合作与团队指导:scrum master 取经路(王庆付)Scrum gathering 2012 shanghai 团队合作与团队指导:scrum master 取经路(王庆付)
Scrum gathering 2012 shanghai 团队合作与团队指导:scrum master 取经路(王庆付)LetAgileFly
 
Scrum gathering 2012 shanghai 播种敏捷分会场演讲话题:敏捷估算的新视角(Alan Atlas)
Scrum gathering 2012 shanghai 播种敏捷分会场演讲话题:敏捷估算的新视角(Alan Atlas)Scrum gathering 2012 shanghai 播种敏捷分会场演讲话题:敏捷估算的新视角(Alan Atlas)
Scrum gathering 2012 shanghai 播种敏捷分会场演讲话题:敏捷估算的新视角(Alan Atlas)LetAgileFly
 
Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:持续集成–从地面到云端(许晓斌)
Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:持续集成–从地面到云端(许晓斌)Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:持续集成–从地面到云端(许晓斌)
Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:持续集成–从地面到云端(许晓斌)LetAgileFly
 
Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)
Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)
Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)LetAgileFly
 
Scrum Gathering 2012 Shanghai_领导力与组织转型:企业敏捷转型所面临的文化挑战
Scrum Gathering 2012 Shanghai_领导力与组织转型:企业敏捷转型所面临的文化挑战Scrum Gathering 2012 Shanghai_领导力与组织转型:企业敏捷转型所面临的文化挑战
Scrum Gathering 2012 Shanghai_领导力与组织转型:企业敏捷转型所面临的文化挑战LetAgileFly
 

Destaque (8)

Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
 
Scrum gathering 2012 shanghai 团队合作与团队指导分会场演讲话题:你的团队什么颜色的(杨瑞)
Scrum gathering 2012 shanghai  团队合作与团队指导分会场演讲话题:你的团队什么颜色的(杨瑞)Scrum gathering 2012 shanghai  团队合作与团队指导分会场演讲话题:你的团队什么颜色的(杨瑞)
Scrum gathering 2012 shanghai 团队合作与团队指导分会场演讲话题:你的团队什么颜色的(杨瑞)
 
Sponsorship program 2013 regional scrum gathering china
Sponsorship program 2013 regional scrum gathering chinaSponsorship program 2013 regional scrum gathering china
Sponsorship program 2013 regional scrum gathering china
 
Scrum gathering 2012 shanghai 团队合作与团队指导:scrum master 取经路(王庆付)
Scrum gathering 2012 shanghai 团队合作与团队指导:scrum master 取经路(王庆付)Scrum gathering 2012 shanghai 团队合作与团队指导:scrum master 取经路(王庆付)
Scrum gathering 2012 shanghai 团队合作与团队指导:scrum master 取经路(王庆付)
 
Scrum gathering 2012 shanghai 播种敏捷分会场演讲话题:敏捷估算的新视角(Alan Atlas)
Scrum gathering 2012 shanghai 播种敏捷分会场演讲话题:敏捷估算的新视角(Alan Atlas)Scrum gathering 2012 shanghai 播种敏捷分会场演讲话题:敏捷估算的新视角(Alan Atlas)
Scrum gathering 2012 shanghai 播种敏捷分会场演讲话题:敏捷估算的新视角(Alan Atlas)
 
Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:持续集成–从地面到云端(许晓斌)
Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:持续集成–从地面到云端(许晓斌)Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:持续集成–从地面到云端(许晓斌)
Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:持续集成–从地面到云端(许晓斌)
 
Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)
Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)
Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)
 
Scrum Gathering 2012 Shanghai_领导力与组织转型:企业敏捷转型所面临的文化挑战
Scrum Gathering 2012 Shanghai_领导力与组织转型:企业敏捷转型所面临的文化挑战Scrum Gathering 2012 Shanghai_领导力与组织转型:企业敏捷转型所面临的文化挑战
Scrum Gathering 2012 Shanghai_领导力与组织转型:企业敏捷转型所面临的文化挑战
 

Semelhante a Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:编程练习(尹哲)

Programming exercises
Programming exercisesProgramming exercises
Programming exercisesTerry Yin
 
Gentle Introduction to Functional Programming
Gentle Introduction to Functional ProgrammingGentle Introduction to Functional Programming
Gentle Introduction to Functional ProgrammingSaurabh Singh
 
Psimd open64 workshop_2012-new
Psimd open64 workshop_2012-newPsimd open64 workshop_2012-new
Psimd open64 workshop_2012-newdibyendu_das0708
 
Lowering in C#: What really happens with your code?, from NDC Oslo 2019
Lowering in C#: What really happens with your code?, from NDC Oslo 2019Lowering in C#: What really happens with your code?, from NDC Oslo 2019
Lowering in C#: What really happens with your code?, from NDC Oslo 2019David Wengier
 
From clever code to better code
From clever code to better codeFrom clever code to better code
From clever code to better codeDror Helper
 
On-Homomorphic-Encryption-and-Secure-Computation.ppt
On-Homomorphic-Encryption-and-Secure-Computation.pptOn-Homomorphic-Encryption-and-Secure-Computation.ppt
On-Homomorphic-Encryption-and-Secure-Computation.pptssuser85a33d
 
Fast REST APIs Development with MongoDB
Fast REST APIs Development with MongoDBFast REST APIs Development with MongoDB
Fast REST APIs Development with MongoDBMongoDB
 
Priming Java for Speed at Market Open
Priming Java for Speed at Market OpenPriming Java for Speed at Market Open
Priming Java for Speed at Market OpenAzul Systems Inc.
 
OOP 2012 - Hint: Dynamic allocation in c++
OOP 2012 - Hint: Dynamic allocation in c++OOP 2012 - Hint: Dynamic allocation in c++
OOP 2012 - Hint: Dynamic allocation in c++Allan Sun
 
Business Dashboards using Bonobo ETL, Grafana and Apache Airflow
Business Dashboards using Bonobo ETL, Grafana and Apache AirflowBusiness Dashboards using Bonobo ETL, Grafana and Apache Airflow
Business Dashboards using Bonobo ETL, Grafana and Apache AirflowRomain Dorgueil
 
An Introduction to Test Driven Development with React
An Introduction to Test Driven Development with ReactAn Introduction to Test Driven Development with React
An Introduction to Test Driven Development with ReactFITC
 

Semelhante a Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:编程练习(尹哲) (20)

C programs
C programsC programs
C programs
 
Programming exercises
Programming exercisesProgramming exercises
Programming exercises
 
Notes
NotesNotes
Notes
 
Gentle Introduction to Functional Programming
Gentle Introduction to Functional ProgrammingGentle Introduction to Functional Programming
Gentle Introduction to Functional Programming
 
Aditazz 01-ul
Aditazz 01-ulAditazz 01-ul
Aditazz 01-ul
 
C#, What Is Next?
C#, What Is Next?C#, What Is Next?
C#, What Is Next?
 
C arrays
C arraysC arrays
C arrays
 
Psimd open64 workshop_2012-new
Psimd open64 workshop_2012-newPsimd open64 workshop_2012-new
Psimd open64 workshop_2012-new
 
Lowering in C#: What really happens with your code?, from NDC Oslo 2019
Lowering in C#: What really happens with your code?, from NDC Oslo 2019Lowering in C#: What really happens with your code?, from NDC Oslo 2019
Lowering in C#: What really happens with your code?, from NDC Oslo 2019
 
7. arrays
7. arrays7. arrays
7. arrays
 
Pythonic Math
Pythonic MathPythonic Math
Pythonic Math
 
From clever code to better code
From clever code to better codeFrom clever code to better code
From clever code to better code
 
C++ practical
C++ practicalC++ practical
C++ practical
 
On-Homomorphic-Encryption-and-Secure-Computation.ppt
On-Homomorphic-Encryption-and-Secure-Computation.pptOn-Homomorphic-Encryption-and-Secure-Computation.ppt
On-Homomorphic-Encryption-and-Secure-Computation.ppt
 
Fast REST APIs Development with MongoDB
Fast REST APIs Development with MongoDBFast REST APIs Development with MongoDB
Fast REST APIs Development with MongoDB
 
Priming Java for Speed at Market Open
Priming Java for Speed at Market OpenPriming Java for Speed at Market Open
Priming Java for Speed at Market Open
 
OOP 2012 - Hint: Dynamic allocation in c++
OOP 2012 - Hint: Dynamic allocation in c++OOP 2012 - Hint: Dynamic allocation in c++
OOP 2012 - Hint: Dynamic allocation in c++
 
Business Dashboards using Bonobo ETL, Grafana and Apache Airflow
Business Dashboards using Bonobo ETL, Grafana and Apache AirflowBusiness Dashboards using Bonobo ETL, Grafana and Apache Airflow
Business Dashboards using Bonobo ETL, Grafana and Apache Airflow
 
Arrays
ArraysArrays
Arrays
 
An Introduction to Test Driven Development with React
An Introduction to Test Driven Development with ReactAn Introduction to Test Driven Development with React
An Introduction to Test Driven Development with React
 

Mais de LetAgileFly

Scrum Gathering 2012 Shanghai_领导力与组织转型:scrum in china the hard way (oliver ...
Scrum Gathering 2012 Shanghai_领导力与组织转型:scrum in china   the hard way (oliver ...Scrum Gathering 2012 Shanghai_领导力与组织转型:scrum in china   the hard way (oliver ...
Scrum Gathering 2012 Shanghai_领导力与组织转型:scrum in china the hard way (oliver ...LetAgileFly
 
Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:how to write unit test for new cod...
Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:how to write unit test for new cod...Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:how to write unit test for new cod...
Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:how to write unit test for new cod...LetAgileFly
 
Scrum gathering 2012 shanghai 产品管理及用户体验 分会场:敏捷的hard模式 产品经理视角(窦涵之)
Scrum gathering 2012 shanghai 产品管理及用户体验 分会场:敏捷的hard模式 产品经理视角(窦涵之)Scrum gathering 2012 shanghai 产品管理及用户体验 分会场:敏捷的hard模式 产品经理视角(窦涵之)
Scrum gathering 2012 shanghai 产品管理及用户体验 分会场:敏捷的hard模式 产品经理视角(窦涵之)LetAgileFly
 
Scrum Gathering 2012 Shanghai_创业创新分会场:设计拥抱敏捷环境的办公室(胡凯)
Scrum Gathering 2012 Shanghai_创业创新分会场:设计拥抱敏捷环境的办公室(胡凯)Scrum Gathering 2012 Shanghai_创业创新分会场:设计拥抱敏捷环境的办公室(胡凯)
Scrum Gathering 2012 Shanghai_创业创新分会场:设计拥抱敏捷环境的办公室(胡凯)LetAgileFly
 
Scrum Gathering 2012 Shanghai_敏捷测试与质量管理分会场演讲话题:探索性测试之旅 – 我们团队的探索性测试实战经验(张克冰)
Scrum Gathering 2012 Shanghai_敏捷测试与质量管理分会场演讲话题:探索性测试之旅 – 我们团队的探索性测试实战经验(张克冰)Scrum Gathering 2012 Shanghai_敏捷测试与质量管理分会场演讲话题:探索性测试之旅 – 我们团队的探索性测试实战经验(张克冰)
Scrum Gathering 2012 Shanghai_敏捷测试与质量管理分会场演讲话题:探索性测试之旅 – 我们团队的探索性测试实战经验(张克冰)LetAgileFly
 
Scrum Gathering 2012 Shanghai_产品管理及用户体验 分会场:实例化需求的实践(蔡煜)
Scrum Gathering 2012 Shanghai_产品管理及用户体验 分会场:实例化需求的实践(蔡煜)Scrum Gathering 2012 Shanghai_产品管理及用户体验 分会场:实例化需求的实践(蔡煜)
Scrum Gathering 2012 Shanghai_产品管理及用户体验 分会场:实例化需求的实践(蔡煜)LetAgileFly
 
Scrum Gathering 2012 Shanghai_敏捷测试与质量管理分会场演讲话题:getting to done by testing at ...
Scrum Gathering 2012 Shanghai_敏捷测试与质量管理分会场演讲话题:getting to done by testing at ...Scrum Gathering 2012 Shanghai_敏捷测试与质量管理分会场演讲话题:getting to done by testing at ...
Scrum Gathering 2012 Shanghai_敏捷测试与质量管理分会场演讲话题:getting to done by testing at ...LetAgileFly
 
Scrum Gathering 2012 Shanghai_产品管理及用户体验 分会场:如何提高与业务客户沟通质量(侯伯薇)
Scrum Gathering 2012 Shanghai_产品管理及用户体验 分会场:如何提高与业务客户沟通质量(侯伯薇)Scrum Gathering 2012 Shanghai_产品管理及用户体验 分会场:如何提高与业务客户沟通质量(侯伯薇)
Scrum Gathering 2012 Shanghai_产品管理及用户体验 分会场:如何提高与业务客户沟通质量(侯伯薇)LetAgileFly
 
Scrum Gathering 2012 Shanghai_Keynote: how to change the world(jurgen appelo)
Scrum Gathering 2012 Shanghai_Keynote: how to change the world(jurgen appelo)Scrum Gathering 2012 Shanghai_Keynote: how to change the world(jurgen appelo)
Scrum Gathering 2012 Shanghai_Keynote: how to change the world(jurgen appelo)LetAgileFly
 
Scrum gathering 2012 shanghai 领导力与组织转型分会场演讲话题:让飞行中的敏捷软着陆(李忠利)
Scrum gathering 2012 shanghai  领导力与组织转型分会场演讲话题:让飞行中的敏捷软着陆(李忠利)Scrum gathering 2012 shanghai  领导力与组织转型分会场演讲话题:让飞行中的敏捷软着陆(李忠利)
Scrum gathering 2012 shanghai 领导力与组织转型分会场演讲话题:让飞行中的敏捷软着陆(李忠利)LetAgileFly
 
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)LetAgileFly
 
Scrum Gathering 2012 Shanghai 播种敏捷分会场演讲话题:敏捷项目管理在互联网公司中的应用(钱安川)
Scrum Gathering 2012 Shanghai  播种敏捷分会场演讲话题:敏捷项目管理在互联网公司中的应用(钱安川)Scrum Gathering 2012 Shanghai  播种敏捷分会场演讲话题:敏捷项目管理在互联网公司中的应用(钱安川)
Scrum Gathering 2012 Shanghai 播种敏捷分会场演讲话题:敏捷项目管理在互联网公司中的应用(钱安川)LetAgileFly
 

Mais de LetAgileFly (12)

Scrum Gathering 2012 Shanghai_领导力与组织转型:scrum in china the hard way (oliver ...
Scrum Gathering 2012 Shanghai_领导力与组织转型:scrum in china   the hard way (oliver ...Scrum Gathering 2012 Shanghai_领导力与组织转型:scrum in china   the hard way (oliver ...
Scrum Gathering 2012 Shanghai_领导力与组织转型:scrum in china the hard way (oliver ...
 
Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:how to write unit test for new cod...
Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:how to write unit test for new cod...Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:how to write unit test for new cod...
Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:how to write unit test for new cod...
 
Scrum gathering 2012 shanghai 产品管理及用户体验 分会场:敏捷的hard模式 产品经理视角(窦涵之)
Scrum gathering 2012 shanghai 产品管理及用户体验 分会场:敏捷的hard模式 产品经理视角(窦涵之)Scrum gathering 2012 shanghai 产品管理及用户体验 分会场:敏捷的hard模式 产品经理视角(窦涵之)
Scrum gathering 2012 shanghai 产品管理及用户体验 分会场:敏捷的hard模式 产品经理视角(窦涵之)
 
Scrum Gathering 2012 Shanghai_创业创新分会场:设计拥抱敏捷环境的办公室(胡凯)
Scrum Gathering 2012 Shanghai_创业创新分会场:设计拥抱敏捷环境的办公室(胡凯)Scrum Gathering 2012 Shanghai_创业创新分会场:设计拥抱敏捷环境的办公室(胡凯)
Scrum Gathering 2012 Shanghai_创业创新分会场:设计拥抱敏捷环境的办公室(胡凯)
 
Scrum Gathering 2012 Shanghai_敏捷测试与质量管理分会场演讲话题:探索性测试之旅 – 我们团队的探索性测试实战经验(张克冰)
Scrum Gathering 2012 Shanghai_敏捷测试与质量管理分会场演讲话题:探索性测试之旅 – 我们团队的探索性测试实战经验(张克冰)Scrum Gathering 2012 Shanghai_敏捷测试与质量管理分会场演讲话题:探索性测试之旅 – 我们团队的探索性测试实战经验(张克冰)
Scrum Gathering 2012 Shanghai_敏捷测试与质量管理分会场演讲话题:探索性测试之旅 – 我们团队的探索性测试实战经验(张克冰)
 
Scrum Gathering 2012 Shanghai_产品管理及用户体验 分会场:实例化需求的实践(蔡煜)
Scrum Gathering 2012 Shanghai_产品管理及用户体验 分会场:实例化需求的实践(蔡煜)Scrum Gathering 2012 Shanghai_产品管理及用户体验 分会场:实例化需求的实践(蔡煜)
Scrum Gathering 2012 Shanghai_产品管理及用户体验 分会场:实例化需求的实践(蔡煜)
 
Scrum Gathering 2012 Shanghai_敏捷测试与质量管理分会场演讲话题:getting to done by testing at ...
Scrum Gathering 2012 Shanghai_敏捷测试与质量管理分会场演讲话题:getting to done by testing at ...Scrum Gathering 2012 Shanghai_敏捷测试与质量管理分会场演讲话题:getting to done by testing at ...
Scrum Gathering 2012 Shanghai_敏捷测试与质量管理分会场演讲话题:getting to done by testing at ...
 
Scrum Gathering 2012 Shanghai_产品管理及用户体验 分会场:如何提高与业务客户沟通质量(侯伯薇)
Scrum Gathering 2012 Shanghai_产品管理及用户体验 分会场:如何提高与业务客户沟通质量(侯伯薇)Scrum Gathering 2012 Shanghai_产品管理及用户体验 分会场:如何提高与业务客户沟通质量(侯伯薇)
Scrum Gathering 2012 Shanghai_产品管理及用户体验 分会场:如何提高与业务客户沟通质量(侯伯薇)
 
Scrum Gathering 2012 Shanghai_Keynote: how to change the world(jurgen appelo)
Scrum Gathering 2012 Shanghai_Keynote: how to change the world(jurgen appelo)Scrum Gathering 2012 Shanghai_Keynote: how to change the world(jurgen appelo)
Scrum Gathering 2012 Shanghai_Keynote: how to change the world(jurgen appelo)
 
Scrum gathering 2012 shanghai 领导力与组织转型分会场演讲话题:让飞行中的敏捷软着陆(李忠利)
Scrum gathering 2012 shanghai  领导力与组织转型分会场演讲话题:让飞行中的敏捷软着陆(李忠利)Scrum gathering 2012 shanghai  领导力与组织转型分会场演讲话题:让飞行中的敏捷软着陆(李忠利)
Scrum gathering 2012 shanghai 领导力与组织转型分会场演讲话题:让飞行中的敏捷软着陆(李忠利)
 
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
 
Scrum Gathering 2012 Shanghai 播种敏捷分会场演讲话题:敏捷项目管理在互联网公司中的应用(钱安川)
Scrum Gathering 2012 Shanghai  播种敏捷分会场演讲话题:敏捷项目管理在互联网公司中的应用(钱安川)Scrum Gathering 2012 Shanghai  播种敏捷分会场演讲话题:敏捷项目管理在互联网公司中的应用(钱安川)
Scrum Gathering 2012 Shanghai 播种敏捷分会场演讲话题:敏捷项目管理在互联网公司中的应用(钱安川)
 

Último

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 

Último (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 

Scrum Gathering 2012 Shanghai_工程实践与技术卓越分会场:编程练习(尹哲)

  • 1. Programming Exercises 12年6月5日星期二
  • 2. Who am I? 尹哲:terry@odd-e.com twitter: terryyin weibo: terry尹哲 2 12年6月5日星期二
  • 3. Programming Exercises 12年6月5日星期二
  • 4. Why Programming Exercises? 4 12年6月5日星期二
  • 6. Question Does software company need to train programmers? 6 12年6月5日星期二
  • 7. Leonhard Euler Dojo vs. 7 12年6月5日星期二
  • 8. What is ProjectEuler.net? 8 12年6月5日星期二
  • 9. ProjectEuler.net "Project Euler exists to encourage, challenge, and develop the skills and enjoyment of anyone with an interest in the fascinating world of mathematics." • Project Euler is a series of challenging mathematical/computer programming problems that requires more than just mathematical insights to solve. 9 12年6月5日星期二
  • 10. ProjectEuler.net 10 12年6月5日星期二
  • 11. ProjectEuler.net 11 12年6月5日星期二
  • 12. Expectations Mathematics So lution implementing Hig h perfor mance co d ing So lving problem ind ivi dually 12 12年6月5日星期二
  • 13. Example: Quick & Dirty Once you solved a problem, you are entitled to join the forum for this problem.You can share your solution with the other people who have also solved it. And the post usually start with this sentence: Good coding habit? 13 12年6月5日星期二
  • 14. Another Example 14 12年6月5日星期二
  • 15. int i, j, k, n, sum; int factorial[10000]; int* getfactorial(int n) { factorial[0] = 1; k = 0; for(i = 2; i <= n; i++) { • It’s too simple for for(j = 0; j <= k; j++) factorial[j] *= i; Java, Ruby or Python, for(j = 0; j <= k; j++) for which they can { if(factorial[j] >= 10) handle big numbers by { factorial[j+1] += (factorial[j] - (factorial[j] % 10)) / 10; default. factorial[j] = factorial[j] % 10; • So let’s look at C/C++. if(j == k) k++; • Real code copied from } } the forum. } return factorial; } int getsum(int* array, int k) { sum = 0; for(i = 0; i <= k; i++) sum += array[i]; return sum; } int main() { int* factorial = getfactorial(n); sum = getsum(factorial, k); cout << "nThe sum of the digits of " << n << "! is " << sum << ".n"; return 0; } 15 12年6月5日星期二
  • 17. Big number again. Ha ha, I did that before! Let me reuse it... 17 12年6月5日星期二
  • 18. #include<iostream> using namespace std; int i, j, k, n, sum; int factorial[10000]; Why the big number is named ‘factorial’ int* getfactorial(int n) { in my previous implementation? factorial[0] = 1; k = 0; for(i = 2; i <= n; i++) { for(j = 0; j <= k; j++) factorial[j] *= i; for(j = 0; j <= k; j++) Where’s the code for big number? { if(factorial[j] >= 10) { factorial[j+1] += (factorial[j] - (factorial[j] % 10)) / 10; factorial[j] = factorial[j] % 10; if(j == k) k++; } } } return factorial; } 18 12年6月5日星期二
  • 19. #include <stdio.h> #define NUMB 120 // 9 * 120 = 1080 total digits. #define SIZE 1000000000 // 9 digit numbers int main() { int i = 0; int j = 0; int bigNum1[NUMB]; int bigNum2[NUMB]; int bigNum3[NUMB]; int counter = 0; for (i = 0; i < NUMB; i++) { bigNum1 = 0; bigNum2 = 0; bigNum3 = 0; } bigNum1[0] = 1; OK, too hard to reuse. It’s not bigNum2[0] = 1; counter = 2; that hard to invent the wheel again. i = 0; while (i == 0) { counter++; for (j = 0; j < NUMB; j++) { bigNum3[j] = bigNum2[j] + bigNum1[j]; } for (j = 0; j < NUMB-1; j++) { while (bigNum3[j] >= SIZE) { bigNum3[j] -= SIZE; bigNum3[j+1]++; Design? } } if (bigNum3[111] >= 1) break; for (j = 0; j < NUMB; j++) { bigNum1[j] = bigNum2[j]; bigNum2[j] = bigNum3[j]; } } printf("n"); printf("P025 answer = %u", counter); } 19 12年6月5日星期二
  • 20. ing exercises Problem so lv tant skills ✓ Train ver y impor w as inter vie ✓Often use d ques tions i n skills in ✓ Probab ly also tra n able co de, maki ng maintai a little. •Don’t do it before bed time... 20 12年6月5日星期二
  • 21. What is Cyber Dojo? 21 12年6月5日星期二
  • 25. RED - GREEN - REFACTOR 25 12年6月5日星期二
  • 29. Which One Do You Prefer? 29 12年6月5日星期二
  • 30. Poker Hands 30 12年6月5日星期二
  • 31. Poker Hands Kata 31 12年6月5日星期二
  • 32. Poker Hands in ProjectEuler • This is not a very hard problem to solve, comparing to most of the problems listed in ProjectEuler.net • But it’s hard to solve it without bugs if you don’t have unit tests. • Problem 54 in projectEuler.net 32 12年6月5日星期二
  • 33. Example: Complicated Transaction 33 12年6月5日星期二
  • 34. Why Did I Do It Right With Only One Try? 34 12年6月5日星期二
  • 35. TEST(poker_hand, comparing){ CHECK(pokerHand("4H 5C 6S 7S TD")< pokerHand("2C 3S 7S 8D KD")); CHECK(!(pokerHand("4H 5C 6S 7S KD")< pokerHand("2C 3S 7S 8D TD"))); CHECK(pokerHand("4H 5C 6S 7S KD")> pokerHand("2C 3S 7S 8D TD")); } TEST(poker_hand, compare_cards){ CHECK(pokerHand("3H 5C 6S 7S 8D")< pokerHand("4H 5C 6S 7S 9D")); CHECK(pokerHand("3H 5C 6S 7S 9D")< pokerHand("4H 5C 6S 7S TD")); CHECK(pokerHand("3H 5C 6S 7S TD")< pokerHand("4H 5C 6S 7S JD")); CHECK(pokerHand("3H 5C 6S 7S JD")< pokerHand("4H 5C 6S 7S QD")); CHECK(pokerHand("3H 5C 6S 7S QD")< pokerHand("4H 5C 6S 7S KD")); CHECK(pokerHand("3H 5C 6S 7S KD")< pokerHand("4H 5C 6S 7S AD")); } TEST(poker_hand, compare_high_cards_2nd){ CHECK(pokerHand("3H 5C 6S 7S 9D")< pokerHand("3H 5C 6S 8S 9D")); } TEST(poker_hand, compare_high_cards_3nd_4th_5th){ CHECK(pokerHand("3H 5C 6S 8S 9D")< pokerHand("3H 5C 7S 8S 9D")); CHECK(pokerHand("3H 4C 7S 8S 9D")< pokerHand("3H 5C 7S 8S 9D")); CHECK(pokerHand("2H 5C 7S 8S 9D")< pokerHand("3H 5C 7S 8S 9D")); } TEST(poker_hand, compare_high_card_and_one_pair){ CHECK(pokerHand("3H 5C 6S 8S 9D")< pokerHand("3H 5C 7S 8S 8D")); } TEST(poker_hand, compare_one_pairs){ CHECK(pokerHand("3H 5C 6S 9S 9D")> pokerHand("3H 5C 7S 8S 8D")); CHECK(pokerHand("5C 6S 9S 9D KD")> pokerHand("5C 7S 8S 8D AD")); CHECK(pokerHand("5C 6S 9S 9D KD")< pokerHand("5C 7S 9S 9D AD")); } ... 35 12年6月5日星期二
  • 36. Do both exercises. Alone and with the others. Always use good practices. Have fun. 36 12年6月5日星期二
  • 37. Discuss Training in workshop Develop in concurrence Deliver for acceptance 37 12年6月5日星期二
  • 38. Odd-e Certified Scrum Developer • One week course simulating how it feels to be on a Scrum project - Realistic exercise to work on as a team - Topics covered: A-TDD, Build Automation, Sprint Planning, Pair Programming, Continuous Integration, Test-Driven Development, Working in teams, Collective Code Ownership, Mocking, Code Smells & Refactoring, Good unit tests,Emergent Design, Working with Legacy Code, Craftsmanship - Maximum 10 people, in Odd-e office - Java and C++ version - Fulfills the ScurmAlliance CSD More info at: http://www.odd-e.com/courses.php?id=201205SingaporeCSD 38 12年6月5日星期二
  • 39. Coaching 39 12年6月5日星期二