Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

Coding - Best Practice

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Coding - Best Practice

    Hi all

    Continuing to play with Xbasic. I don't want to learn bad habits, and I know that some ways of coding work but aren't necessarily the best way to code.

    An extremely simple example. This code works...
    Code:
    Line1 = "Hello World"
    NewText = Line1 + crlf() + file.to_string("MoreText.txt")
    But this code looks/feels tidier to me, and is probably easier to understand when I revisit it in 5 years time, yet has 50% more lines of code (imagine this 50% applied to every script in a large app)...
    Code:
    Line1 = "Hello World"
    Line2 = file.to_string("MoreText.txt")
    NewText = Line1 + crlf() + Line2
    Is either one better code? And why?
    Kind Regards
    Alan

    #2
    Re: Coding - Best Practice

    My two cents:
    Code:
    Line1 = "Hello World"
    NewText = Line1 + crlf() + file.to_string("MoreText.txt")
    The above is better because it has fewer assignments (equal signs) and, therefore, runs a few milliseconds faster. It would even be faster as simply:
    NewText = "Hello World" + crlf() + file.to_string("MoreText.txt")
    Code:
    Line1 = "Hello World"
    Line2 = file.to_string("MoreText.txt")
    NewText = Line1 + crlf() + Line2
    The above is better for exactly the reason you mentioned - it will be easier to understand later. And, forget 5 years. Five DAYS, or even just 5 hours, may be enough if, like me, you will be working on other jobs in the interim. (Today was a good day, I only had to work on 2 different apps and answer questions about 2-3 others. But it's only 7:30 pm and there's another customer expecting to have his update finished this week, too.)

    My overall preference - go with "easier to understand" whenever the time difference isn't an issue. That usually means any time you are not running a lot of loops.

    AND - speaking about saving time later - don't forget to use lots of comments. Yes, it takes a bit longer to add the comments initially but they can save a LOT of time later when debugging or updating. I even find that adding comments before writing the code even helps to focus my thinking about what I'm trying to do.

    Speaking of avoiding bad habits, if you haven't already, you might want to check out my A5 Naming Recommendations. Even if you don't follow them to the letter, at least it will give some "thoughts to ponder".

    And, here's another hint that may come in handy someday when you are concatenating something in a long loop: (don't bother with it if just adding two strings together as a one-time deal)

    Use the *concat() function when concatenating multiple lines in a loop. NOTE: This is NOT the *concat_lines() function!! According to the Help file the *concat_lines() function is much faster than simply using the "+" sign. However, that is not true according to my tests - they were almost identical in speed. However, the *concat() function is at least 15 times faster on my machine.

    The *concat() function is in the Help file but you have to know how to spell it first. It doesn't show up under the "Character Addition Functions" listing. Note that it is also used differently than most functions - it does NOT return a value. It simply updates the value of the first argument. ALSO IMPORTANT, unlike *concat_lines(), it is a simple concatenation of two strings. The *concat_lines() starts each argument on a new line - just like the name implies. However, if you want to start the second variable on a new line when using *concat(), you must include a crlf().

    Here's a comparison for resetting "var1" where var1="Hello" and var2="World":

    var1 = *concat_lines( var1, var2 )
    vs.
    *concat( var1, crlf() + var2 )

    In either case, the result in var1 will be:
    Hello
    World

    Without the crlf() in the *Concat() function the result would be:
    HelloWorld

    Disclaimer: I haven't tested the speed of something like *concat_lines( var1, var2, var3, var4, var5, var6, ....). That may be much faster than using the "+" sign to concatenate all those lines. However, if you are concatenating just two strings - which is the way it usually works in a loop, I know the *concat() function is much faster than either *concat_lines() or the "+" sign. (The *concat() function only takes two arguments.)
    Last edited by CALocklin; 11-04-2009, 09:04 PM.

    Comment


      #3
      Re: Coding - Best Practice

      Originally posted by Citadel View Post
      Hi all

      Continuing to play with Xbasic. I don't want to learn bad habits, and I know that some ways of coding work but aren't necessarily the best way to code.

      An extremely simple example. This code works...
      Code:
      Line1 = "Hello World"
      NewText = Line1 + crlf() + file.to_string("MoreText.txt")
      But this code looks/feels tidier to me, and is probably easier to understand when I revisit it in 5 years time, yet has 50% more lines of code (imagine this 50% applied to every script in a large app)...
      Code:
      Line1 = "Hello World"
      Line2 = file.to_string("MoreText.txt")
      NewText = Line1 + crlf() + Line2
      Is either one better code? And why?
      Except for User Interface (UI), I generally go for speed, as it always is needed as tables get larger. Alpha takes a long time to do assignments (equals), but is very fast at expression evaluation. So if you want to pre-compute common expressions, it often is slower that repeating it (within reason) as in
      a=var1+3
      b=(a^2)+a+6
      c=a+25
      is slower than
      b=((var1+3)^2)+(var1+3)+6
      c=(var1+3)+25
      Your mileage may vary depending on the number of substitutions and the complexity of the extracted sub-expression.

      The reason the 2nd is better is because if you have to change strings (for multiple languages or to fix it), you can put it all up at the top of the code, making it easier to change.

      For coding practices, visit my tips pages here.
      Regards,

      Ira J. Perlow
      Computer Systems Design


      CSDA A5 Products
      New - Free CSDA DiagInfo - v1.39, 30 Apr 2013
      CSDA Barcode Functions

      CSDA Code Utility
      CSDA Screen Capture


      Comment


        #4
        Re: Coding - Best Practice

        It's a good question and one that you should strive for as you develop and learn more - especially since what may be true with a simple example may not be true as you learn to create ever more complicated code.

        All too often, those of who claim to be programmers will align ourselves to a method without re-evaluating simplicity and speed as things become more complex.

        For example, it is true, as a general rule of thumb, that the fewer the lines of code, the quicker the execution because the compiler has less to evaluate but, sometimes, you have to sacrifice an apparently elegant solution if, again for example, a returned response leads to multiple branches of code. In this instance, a more complex and time consuming evaluation could be more efficient if it leads to less branching.

        This aside, most of what I see as lacking, in a developer sense, is not so much efficiency of code, but error handling.

        For me, and I'm sure my users (if they never see a problem) then error handling becomes an unsung hero. It is easy to lose sight of error handling when trying to be just a tad more efficient.

        Strive to be an error handling expert, and the logic/efficiency of code will probably follow all by itself.

        Regards,

        Gary

        Comment

        Working...
        X