How do I efficiently understand a framework with sparse documentation?











up vote
0
down vote

favorite












I have the problem that for a project I need to work with a framework (Python), that has a poor documentation. I know what it does since it is the back end of a running application. I also know that no framework is good if the documentation is bad and that I should prob. code it myself. But, I have a time constraint. Therefore my question is: Is there a cooking recipe on how to understand a poorly documented framework?



What I tried until now is checking some functions and identify the organizational units in the framework but I am lacking a system to do it more effectively.










share|improve this question






















  • You'll have to read the code. Shariq advice looks good.
    – progmatico
    Nov 19 at 14:35















up vote
0
down vote

favorite












I have the problem that for a project I need to work with a framework (Python), that has a poor documentation. I know what it does since it is the back end of a running application. I also know that no framework is good if the documentation is bad and that I should prob. code it myself. But, I have a time constraint. Therefore my question is: Is there a cooking recipe on how to understand a poorly documented framework?



What I tried until now is checking some functions and identify the organizational units in the framework but I am lacking a system to do it more effectively.










share|improve this question






















  • You'll have to read the code. Shariq advice looks good.
    – progmatico
    Nov 19 at 14:35













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I have the problem that for a project I need to work with a framework (Python), that has a poor documentation. I know what it does since it is the back end of a running application. I also know that no framework is good if the documentation is bad and that I should prob. code it myself. But, I have a time constraint. Therefore my question is: Is there a cooking recipe on how to understand a poorly documented framework?



What I tried until now is checking some functions and identify the organizational units in the framework but I am lacking a system to do it more effectively.










share|improve this question













I have the problem that for a project I need to work with a framework (Python), that has a poor documentation. I know what it does since it is the back end of a running application. I also know that no framework is good if the documentation is bad and that I should prob. code it myself. But, I have a time constraint. Therefore my question is: Is there a cooking recipe on how to understand a poorly documented framework?



What I tried until now is checking some functions and identify the organizational units in the framework but I am lacking a system to do it more effectively.







python oop frameworks






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 19 at 8:19









Auss

212




212












  • You'll have to read the code. Shariq advice looks good.
    – progmatico
    Nov 19 at 14:35


















  • You'll have to read the code. Shariq advice looks good.
    – progmatico
    Nov 19 at 14:35
















You'll have to read the code. Shariq advice looks good.
– progmatico
Nov 19 at 14:35




You'll have to read the code. Shariq advice looks good.
– progmatico
Nov 19 at 14:35












2 Answers
2






active

oldest

votes

















up vote
2
down vote













If I were you, with time constaraints, and bound to use a specific framework. I'll go in the following manner:




  • List down the use cases I desire to implement using the framework

  • Identify the APIs provided by the framework that helps me implement the use cases

  • Prototype the usecases based on the available documentation and reading


The prototyping is not implementing the entire use case, but to identify the building blocks around the case and implementing them. e.g., If my usecase is to fetch the Students, along with their courses, and if I were using Hibernate to implement, I would prototype the database accesss, validating how easily am I able to access the database using Hibernate, or how easily I am able to get the relational data by means of joining/aggregation etc.



The prototyping will help me figure out the possible limitations/bugs in the framework. If the limitations are more of show-stoppers, I will implement the supporting APIs myself; or I can take a call to scrap out the entire framework and write one for myself; whichever makes more sense.






share|improve this answer




























    up vote
    1
    down vote













    You may also use python debugging library: pdb. After importing it with import pdb you may set traces in the body of functions and classes pdb.set_trace(). Then it will stop the execution of the program in the line and you may look at existing variables and processes.






    share|improve this answer





















      Your Answer






      StackExchange.ifUsing("editor", function () {
      StackExchange.using("externalEditor", function () {
      StackExchange.using("snippets", function () {
      StackExchange.snippets.init();
      });
      });
      }, "code-snippets");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "1"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53370709%2fhow-do-i-efficiently-understand-a-framework-with-sparse-documentation%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      2
      down vote













      If I were you, with time constaraints, and bound to use a specific framework. I'll go in the following manner:




      • List down the use cases I desire to implement using the framework

      • Identify the APIs provided by the framework that helps me implement the use cases

      • Prototype the usecases based on the available documentation and reading


      The prototyping is not implementing the entire use case, but to identify the building blocks around the case and implementing them. e.g., If my usecase is to fetch the Students, along with their courses, and if I were using Hibernate to implement, I would prototype the database accesss, validating how easily am I able to access the database using Hibernate, or how easily I am able to get the relational data by means of joining/aggregation etc.



      The prototyping will help me figure out the possible limitations/bugs in the framework. If the limitations are more of show-stoppers, I will implement the supporting APIs myself; or I can take a call to scrap out the entire framework and write one for myself; whichever makes more sense.






      share|improve this answer

























        up vote
        2
        down vote













        If I were you, with time constaraints, and bound to use a specific framework. I'll go in the following manner:




        • List down the use cases I desire to implement using the framework

        • Identify the APIs provided by the framework that helps me implement the use cases

        • Prototype the usecases based on the available documentation and reading


        The prototyping is not implementing the entire use case, but to identify the building blocks around the case and implementing them. e.g., If my usecase is to fetch the Students, along with their courses, and if I were using Hibernate to implement, I would prototype the database accesss, validating how easily am I able to access the database using Hibernate, or how easily I am able to get the relational data by means of joining/aggregation etc.



        The prototyping will help me figure out the possible limitations/bugs in the framework. If the limitations are more of show-stoppers, I will implement the supporting APIs myself; or I can take a call to scrap out the entire framework and write one for myself; whichever makes more sense.






        share|improve this answer























          up vote
          2
          down vote










          up vote
          2
          down vote









          If I were you, with time constaraints, and bound to use a specific framework. I'll go in the following manner:




          • List down the use cases I desire to implement using the framework

          • Identify the APIs provided by the framework that helps me implement the use cases

          • Prototype the usecases based on the available documentation and reading


          The prototyping is not implementing the entire use case, but to identify the building blocks around the case and implementing them. e.g., If my usecase is to fetch the Students, along with their courses, and if I were using Hibernate to implement, I would prototype the database accesss, validating how easily am I able to access the database using Hibernate, or how easily I am able to get the relational data by means of joining/aggregation etc.



          The prototyping will help me figure out the possible limitations/bugs in the framework. If the limitations are more of show-stoppers, I will implement the supporting APIs myself; or I can take a call to scrap out the entire framework and write one for myself; whichever makes more sense.






          share|improve this answer












          If I were you, with time constaraints, and bound to use a specific framework. I'll go in the following manner:




          • List down the use cases I desire to implement using the framework

          • Identify the APIs provided by the framework that helps me implement the use cases

          • Prototype the usecases based on the available documentation and reading


          The prototyping is not implementing the entire use case, but to identify the building blocks around the case and implementing them. e.g., If my usecase is to fetch the Students, along with their courses, and if I were using Hibernate to implement, I would prototype the database accesss, validating how easily am I able to access the database using Hibernate, or how easily I am able to get the relational data by means of joining/aggregation etc.



          The prototyping will help me figure out the possible limitations/bugs in the framework. If the limitations are more of show-stoppers, I will implement the supporting APIs myself; or I can take a call to scrap out the entire framework and write one for myself; whichever makes more sense.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 19 at 8:31









          Shariq

          15911




          15911
























              up vote
              1
              down vote













              You may also use python debugging library: pdb. After importing it with import pdb you may set traces in the body of functions and classes pdb.set_trace(). Then it will stop the execution of the program in the line and you may look at existing variables and processes.






              share|improve this answer

























                up vote
                1
                down vote













                You may also use python debugging library: pdb. After importing it with import pdb you may set traces in the body of functions and classes pdb.set_trace(). Then it will stop the execution of the program in the line and you may look at existing variables and processes.






                share|improve this answer























                  up vote
                  1
                  down vote










                  up vote
                  1
                  down vote









                  You may also use python debugging library: pdb. After importing it with import pdb you may set traces in the body of functions and classes pdb.set_trace(). Then it will stop the execution of the program in the line and you may look at existing variables and processes.






                  share|improve this answer












                  You may also use python debugging library: pdb. After importing it with import pdb you may set traces in the body of functions and classes pdb.set_trace(). Then it will stop the execution of the program in the line and you may look at existing variables and processes.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 19 at 8:41









                  artona

                  60737




                  60737






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.





                      Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                      Please pay close attention to the following guidance:


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53370709%2fhow-do-i-efficiently-understand-a-framework-with-sparse-documentation%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Ottavio Pratesi

                      Tricia Helfer

                      15 giugno