技術情報

Dry code

Today I would like to make a short introduction about dry code.

What is dry code

There is a principle in programming called DRY, or Don’t Repeat Yourself. It usually means refactoring your code by taking something done multiple times and turning it into a loop or a function. The DRY code is easy to change, because you only have to make any changes in one place.

Advantages of DRY

Maintainability

The biggest benefit of using DRY is ease of maintenance. If the logic of checking permissions was repeated throughout the code, it is difficult to troubleshoot problems that occur in the repeated code. When you fix a problem in one, you can easily forget to fix the problem in other cases. Also, if you have to modify the logic, you have to copy and paste everywhere. By having non-repeating code, you just have to keep the code in one place. New bug and logic fixes can be made in one place instead of many. This leads to robust and reliable software.

Readability

Most of the time, the DRY code is more readable. This is not due to the DRY principle itself, but rather the extra effort that the developer put into the code to make it follow certain principles like DRY.

Re-use

DRY inherently promotes code reuse because we are merging 2 or more instances of repeating code into a single code block. Reusable code pays off in the long run as it speeds up development time.

Cost

If management needs to be convinced to spend more time improving code quality, this is it. More code costs more. More code requires more time to maintain and fix bugs. More time to develop and more mistakes leads to a very unhappy customer.

Tests

We are talking about unit testing and integration testing here, not manual testing. The more routes and functions you have to cover with the tests, the more code you will have to write for the tests. If your code doesn’t repeat, you just have to test one parent path.

By Yuuma.



Pseudocode

Pseudocode is an informal form of programming description that does not require any strict programming language syntax or underlying technology considerations. Used to create an outline or draft of a program. Pseudocode summarizes the flow of a program, but excludes the underlying details. Systems designers write pseudocode to ensure that programmers understand the requirements of a software project and align the code accordingly.

A Pseudocode is a prototype sample, model, or early release of a product created for the purpose of testing concepts and for learning purposes. They help us learn without fully implementing our solutions. When developing user interfaces for our applications, we have several prototypes before the final interface. Some examples of these are wire frames, graphic designs, and mockups.

This is the way how to write pseudo code.

  • Organize your task sequence and write your pseudocode accordingly.
  • Start with the declaration of a pseudocode that states the main goal or goal.

We have to know there are some KEYWORDS to be used in pseudo code.
These are for start and end of a program
BEGIN, END

These are for condition statements.
IF, ELSE, ENDIF, DO, WHILE, ENDWHILE, REPEAT, UNTIL, CASE

These are for user inputs.
INPUT, GET, READ , SET

These are for displaying results.
PRINT, SHOW

Here is some sample pseudo codes.

//Conditional statement if
if "1"
    print "this is 1"

if "2"
    print "this is 2"

//Case condition
INPUT number
CASE number of
    1: PRINT "1"
    2: PRINT "2"
    3: PRINT "3"
DEFAULT
    PRINT "0"
ENDCASE

//While Loop
Set index to 0
WHILE index is GREATER THAN 1
	PRINT index
	INCREASE index BY 1 
END

Function
Function sample
  PRINT 'hello world'
Endfunction

There are still more keywords and syntax structures of writing pseudo codes but I think you will get the idea by reading this blog.

By Yuuma



Free Hosting Services that I know

Today, I would like to talk about hosting services that are available to upload your site for free. Although there are thousands of services that are giving free, I will share some good services among these which I know. Let’s get started.

Github Pages

Github is a company that hosts code repositories, collections of code for projects. Github has a feature called Github Pages, which makes it easy and free for you to create a multi-file website hosted on yourusername.github.io. GitHub Pages is a static site hosting service that takes HTML, CSS, and JavaScript files directly from a repository on GitHub, optionally runs the files through a build process, and publishes a website. You can see here. When uploading source code, it is necessary to consider whether the source code is safe to be released to the public.

Netlify

Netlify allows you to create a website using the repository on the git platform. You just need to choose the repository and run the deployment command. After the deployment is complete, your site will be live. You can see here.

AWS Free Tier

Amazon Web Services is an integrated provider of cloud-based computing solutions. One of the Services they provide is Web Site Hosting. AWS offers you a one year free account called AWS Free Tier and you can test and use variety of products from AWS like EC2, S3, RDS and so on. I know it is a little bit hard to consume the UI of AWS but it will improve your server administration knowledge. Be sure to test it out. See here for more detail.

Website Builders

There are some other free services that has website builder like wordpress. So you don’t have to write a single line of code and can build your website within minutes. For example wordpress, wix, weebly. But these services might also have pricing features, so they might force you to buy their product by somehow.

By Yuuma



SQL Joins

Today I would like to talk about MySQL joins along with some practical example queries.

Inner Join

2テーブルの中で同じレコードだけ出る。
(return only matching records from both tables)

Left Join

left テーブルは全レコードが出る、right テーブルのは同じレコードだけ
(return all records from the left table, and only the matched records from the right table)

Right Join

right テーブルは全レコードが出る、leftテーブルのは同じレコードだけ
(return all records from the right table, and only the matched records from the left table)

Full Outer Join

同じレコードが有る時全部レコードが出る。
(return all records from both tables if there is match record between them)

Inner Join Query Example

SELECT column(s)
FROM tb1
INNER JOIN tb2
ON tb1.column = tb2.column;

Left Join Query Example

SELECT column(s)
FROM tb1
LEFT JOIN tb2
ON tb1.column = tb2.column;

Right Join Query Example

SELECT column(s)
FROM tb1
RIGHT JOIN tb2
ON tb1.column = tb2.column;

Full Outer Join Query Example

mysql doesn’t support full join syntax directly so we can use this as an alternative.
(full join = left + right join)

SELECT column(s)
FROM tb1
LEFT JOIN tb2 ON tb1.column = tb2.column;
LEFT JOIN tb3 ON tb1.column = tb3.column;
UNION
SELECT column(s)
FROM tb1
SELECT column(s)
FROM tb1
RIGHT JOIN tb2 ON tb1.column = tb2.column;
RIGHT JOIN tb3 ON tb1.column = tb3.column;



Calculation of time elapsed in PHP

Today I would like to write some code about calculating time elapsed in PHP. Especially if we want to know the elapsed time of inserted records (seconds, minutes, hours , days etc).

For example – Posted 1 週前、3 時間前、50 分間前、30秒間前。

Here is our function to calculate the time eclipse

<?php

function time_elapsed($datetime) {
    $now = new DateTime;
    $ago = new DateTime($datetime);
    //getting the time differences.
    $diff = $now->diff($ago);

    $diff->w = floor($diff->d / 7); //week
    $diff->d -= $diff->w * 7; //day

    //string arrays of formats
    $string = array(
        'y' => '年',
        'm' => '月',
        'w' => '週',
        'd' => '日',
        'h' => '時間',
        'i' => '分',
        's' => '秒',
    );

    //mapping the time difference and format
    foreach ($string as $k => &$v) {
        if ($diff->$k) {
            $v = $diff->$k . ' ' . $v; 
        } else {
            unset($string[$k]);
        }
    }

    //only getting the first array key and value
    $string = array_slice($string, 0, 1);
    return $string ? implode(', ', $string) . '前' : 'ちょうど今';
}

I have included the comments in code so that you can be able to understand it. Let’s call our function to test.

echo time_elapsed("2020-12-06 11:24:25"); //output 1 月前
echo time_elapsed(date("Y-m-d H:i:s")); //output ちょうど今

PS. we have to care about our server timezone when we are dealing with Datetime functions

By Yuuma




アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム